// OrtizOL - xCSw - http://o...content-available-to-author-only...t.com using System; using System.Collections.Generic; using System.Linq; namespace Recetas.CSharp.R0525 { internal class Fruta { public Fruta(string nombre, string color) { Nombre = nombre; Color = color; } public string Nombre { get; set; } public string Color { get; set; } } internal class FrutaLinq { public static void Main() { // Creación de la colección con objetos Fruta: List frutas = new List(){ new Fruta("pera", "verde"), new Fruta("mora", "rojo"), new Fruta("cereza", "rojo"), new Fruta("mango", "amarillo"), new Fruta("banano", "amarillo"), new Fruta("naranja", "naranaja"), new Fruta("tomate", "rojo"), new Fruta("melón", "amarillo"), new Fruta("manzana", "verde") }; // Seleccionamos los nombres de las frutas que no son rojas, y // que su primera letra es distinta de `p`: IEnumerable resultado = from fruta in frutas where fruta.Color != "rojo" && fruta.Nombre[0] != 'p' orderby fruta.Nombre select fruta.Nombre; // Visualización de resultados: Console.WriteLine("\nConsulta usando expresiones estándar:"); foreach(string nombre in resultado) { Console.WriteLine("\tResultado: {0}.", nombre); } // Ahora usamos expresiones lambda para la misma consulta: resultado = frutas.Where(fruta => fruta.Color != "rojo" && fruta.Nombre[0] != 'p'). OrderBy(fruta => fruta.Nombre).Select(fruta => fruta.Nombre); // Visualización de resultados: Console.WriteLine("\nConsulta usando expresiones lambda:"); foreach(string nombre in resultado) { Console.WriteLine("\tResultado: {0}.", nombre); } Console.WriteLine(); } } }