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.