Para este ejemplo usare una lista de tipo clase(personas) para representar los registros y luego obtendremos los registros que sean iguales o mayores a la edad que el usuario especifique usando linq.
El ejemplo esta desarrollado con C# Y VB.Net al final encontraran los proyectos para descargar
Empezaremos agregando una clase a nuestro proyecto Personas.cs Personas.vb y tendrá el siguiente código.
public class Personas
{
private string nombre;
private string apellido;
private int edad;
//propiedades
public string Nombre
{
get { return nombre;}
set { nombre = value; }
}
public string Apellido
{
get { return apellido; }
set { apellido = value; }
}
public int Edad
{
get { return edad; }
set { edad = value; }
}
//constructor
public Personas(string nombre, string apellido, int edad)
{
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
}
//registros
public static List<Personas> Registros()
{
List<Personas> personas = new List<Personas>();
personas.Add(new Personas("Cristian","Torres",20));
personas.Add(new Personas("Jose", "Alfaro", 18));
personas.Add(new Personas("Briseyda", "Flores", 12));
personas.Add(new Personas("Diana", "Turcios", 17));
personas.Add(new Personas("Miguel", "Fernadez", 40));
personas.Add(new Personas("Pedro", "Perez", 11));
personas.Add(new Personas("Nicole", "Garcia", 20));
return personas;
}
}
Public Class Personas
Private _nombre As String
Private _apellido As String
Private _edad As Integer
'propiedades
Public Property Nombre() As String
Get
Return _nombre
End Get
Set(ByVal value As String)
_nombre = value
End Set
End Property
Public Property Apellido() As String
Get
Return _apellido
End Get
Set(ByVal value As String)
_apellido = value
End Set
End Property
Public Property Edad() As Integer
Get
Return _edad
End Get
Set(ByVal value As Integer)
_edad = value
End Set
End Property
'constructor
Public Sub New(ByVal nombre As String, ByVal apellido As String, ByVal edad As Integer)
_nombre = nombre
_apellido = apellido
_edad = edad
End Sub
'registros
Public Shared Function Registros() As List(Of Personas)
Dim personas As New List(Of Personas)()
personas.Add(New Personas("Cristian", "Torres", 20))
personas.Add(New Personas("Jose", "Alfaro", 18))
personas.Add(New Personas("Briseyda", "Flores", 12))
personas.Add(New Personas("Diana", "Turcios", 17))
personas.Add(New Personas("Miguel", "Fernadez", 40))
personas.Add(New Personas("Pedro", "Perez", 11))
personas.Add(New Personas("Nicole", "Garcia", 20))
Return personas
End Function
End Class
El código es sencillo y fácil de entender lo único que se hace es crear una lista de registros de tipo clase Pesona que son los que utilizaremos para hacer nuestra consulta.
Ahora en nuestro en nuestro formulario tendremos el siguiente código.
public Form1()
{
InitializeComponent();
CargarList();
}
List<Personas> personas;
public void CargarList()
{
personas = Personas.Registros();
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = Personas.Registros();
}
private void button1_Click(object sender, EventArgs e)
{
List<Personas> resultados = new List<Personas>();
int edad = Convert.ToInt32(textBox1.Text);
var query = personas.Where(p => p.Edad >= edad);//obtener datos sean mayores e iguales a la edad digitada
foreach (var result in query)
{
resultados.Add(result);
}
dataGridView1.DataSource = resultados;
}
Public Sub New()
InitializeComponent()
CargarList()
End Sub
Dim pers As List(Of Personas)
Public Sub CargarList()
pers = Personas.Registros()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.DataSource = Personas.Registros()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim resultados As New List(Of Personas)
Dim edad As Integer = Convert.ToInt32(TextBox1.Text)
Dim query = pers.Where(Function(p) p.Edad >= edad) 'obtener datos sean mayores a la edad digitada
For Each result In query
resultados.Add(result)
Next
DataGridView1.DataSource = resultados
End Sub
En el código lo que hacemos primeramente es cargar los datos de la lista en el constructor del formulario.Luego en el evento load del formulario cargamos todos los datos de lista en el datagriedview.
Y para hacer el filtro de los datos en el evento click del botón puede verse que lo primero que hacemos es crear una lista de tipo personas llamada resultados que sera la que tendrá todos los registros que cumplan con el filtro que aremos que este caso sera por la edad, hacemos el filtro de nuestros datos usando linq y expresion lambda de la siguiente manera.
var query = personas.Where(p => p.Edad >= edad);
Dim query = pers.Where(Function(p) p.Edad >= edad)Lo que estamos diciendo en esa linea es que obtendremos los registros de las personas donde la edad sea mayor o igual al dato introducido en el textbox.
Y por ultimo lo que hacemos en el código es llenar la lista resultados con los datos obtenidos de nuestra consulta.
Si quieren donarme para una soda lo pueden hacer aqui.
0 Comentarios