Lo dicho, os dejo unos ejemplos de LINQs
Creo una clase “Libro” que tiene un “Título” y un “Autor”
[code lang=”csharp”]
public class Libro
{
//Propiedades
public string Titulo { get; set; }
public string Autor { get; set; }
//Constructor
public Libro(string titulo, string autor)
{
this.Titulo = titulo;
this.Autor = autor;
}
}
[/code]
* Si veis un poco rara la forma de declarar las propiedades y no lo entendeis me poneis un comentario y haré otro árticulo sobre el tema.
Con este método creo una lista de libros con la que voy a hacer el ejemplo del LINQ
[code lang=”csharp”]
private List cargaLibros()
{
//Creamos una lista con libros
List libros = new List
{
new Libro(“Pascal 7”, “Luis Joyanes”),
new Libro(“Enciclopedia C#”, “Francisco javier Ceballos”),
new Libro(“El código Davinci”,”Dan Brown”),
new Libro(“Ángeles y demonios”,”Dan Brown”)
};
return libros;
}
[/code]
**bLinq es un ListBox en el que muestro los resultados de los LINQs
Ejemplo de ordenación con LINQ:
[code lang=”csharp”]
private void ordenaLINQ()
{
List libros = cargaLibros();
//Ordeno los libros por el título
var query = from lib in libros
orderby lib.Titulo
select lib;
//Muestro los libros ordenados
foreach (Libro lib in query)
lbLinq.Items.Add(lib.Titulo +” – “+lib.Autor);
}
[/code]
Mismo ejemplo de ordenación pero con la nomenclatura simplificada de LINQ
[code lang=”csharp”]
private void ordenaLINQ1Simplificado()
{
List libros = cargaLibros();
libros = libros.OrderBy(p =>p.Titulo).ToList();
//Muestro los libros ordenados
foreach (Libro lib in libros)
lbLinq.Items.Add(lib.Titulo + ” – ” + lib.Autor);
}
[/code]
En este ejemplo hacemos una consulta sobre la lista que devuelve los libros de Dan Brown ordenados por el título
[code lang=”csharp”]
private void selecLINQ1()
{
List libros = cargaLibros();
//Selecciono los libros de Dan Brown y los ordeno por título
var query = from lib in libros
where lib.Autor.Equals(“Dan Brown”)
orderby lib.Titulo
select lib;
//Muestro los libros
foreach (Libro lib in query)
lbLinq.Items.Add(lib.Titulo + ” – ” + lib.Autor);
}
[/code]
Mismo ejemplo anterior con la nomenclatura simplificada de LINQ
[code lang=”csharp”]
private void selectLINQ1Simplificado()
{
List libros = cargaLibros();
libros = libros.Where(p => p.Autor == “Dan Brown”).OrderBy(p => p.Titulo).ToList();
//Muestro los libros
foreach (Libro lib in libros)
lbLinq.Items.Add(lib.Titulo + ” – ” + lib.Autor);
}
[/code]
Espero que os sirva. Un saludo!
Estos ejemplos son increibles!, muchas gracias!.
Están buenos los ejemplos, pero no es para principiantes porque falta más detalle.
Se agradece tu aporte.
Saludos.