Skip to content


Ejemplo LINQ en C#

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!

Posted in C#, Framework 3.5.

Tagged with , , .


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Gustavo Gonzalez says

    Estos ejemplos son increibles!, muchas gracias!.

  2. Veronica says

    Están buenos los ejemplos, pero no es para principiantes porque falta más detalle.
    Se agradece tu aporte.
    Saludos.