fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: FrutaLinq.cs
  9. //
  10. // Propósito: Ejemplo completo de LINQ.
  11. //
  12. ============================================================*/
  13.  
  14. using System;
  15. using System.Collections.Generic;
  16. using System.Linq;
  17. using System.Text;
  18.  
  19. namespace Recetas.Cap02
  20. {
  21. internal class Fruta
  22. {
  23. public Fruta(string nombre, string color)
  24. {
  25. Nombre = nombre;
  26. Color = color;
  27. }
  28.  
  29. public string Nombre
  30. {
  31. get;
  32. set;
  33. }
  34.  
  35. public string Color
  36. {
  37. get;
  38. set;
  39. }
  40. }
  41.  
  42. internal class FrutaLinq
  43. {
  44. public static void Main()
  45. {
  46. // Creación de la colección con objetos Fruta:
  47. List<Fruta> frutas = new List<Fruta>(){
  48. new Fruta("pera", "verde"),
  49. new Fruta("mora", "rojo"),
  50. new Fruta("cereza", "rojo"),
  51. new Fruta("mango", "amarillo"),
  52. new Fruta("banano", "amarillo"),
  53. new Fruta("naranja", "naranaja"),
  54. new Fruta("tomate", "rojo"),
  55. new Fruta("melón", "amarillo"),
  56. new Fruta("manzana", "verde")
  57. };
  58.  
  59. // Seleccionamos los nombres de las frutas que no son rojas, y
  60. // que su primera letra es distinta de `p`:
  61. IEnumerable<string> resultado = from fruta in frutas where fruta.Color != "rojo"
  62. && fruta.Nombre[0] != 'p' orderby fruta.Nombre
  63. select fruta.Nombre;
  64.  
  65. // Visualización de resultados:
  66. Console.WriteLine("\nConsulta usando expresiones estándar:");
  67. foreach(string nombre in resultado)
  68. {
  69. Console.WriteLine("\tResultado: {0}.", nombre);
  70. }
  71.  
  72. // Ahora usamos expresiones lambada para la misma consulta:
  73. resultado = frutas.Where(fruta => fruta.Color != "rojo" && fruta.Nombre[0] != 'p').
  74. OrderBy(fruta => fruta.Nombre).Select(fruta => fruta.Nombre);
  75.  
  76. // Visualización de resultados:
  77. Console.WriteLine("\nConsulta usando expresiones lambda:");
  78. foreach(string nombre in resultado)
  79. {
  80. Console.WriteLine("\tResultado: {0}.", nombre);
  81. }
  82.  
  83. Console.WriteLine();
  84. }
  85. }
  86. }
Success #stdin #stdout 0.07s 34240KB
stdin
Standard input is empty
stdout
Consulta usando expresiones estándar:
	Resultado: banano.
	Resultado: mango.
	Resultado: manzana.
	Resultado: melón.
	Resultado: naranja.

Consulta usando expresiones lambda:
	Resultado: banano.
	Resultado: mango.
	Resultado: manzana.
	Resultado: melón.
	Resultado: naranja.