fork download
  1. // OrtizOL - xCSw - http://o...content-available-to-author-only...t.com
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6.  
  7. namespace Recetas.CSharp.R0525
  8. {
  9. internal class Fruta
  10. {
  11. public Fruta(string nombre, string color)
  12. {
  13. Nombre = nombre;
  14. Color = color;
  15. }
  16.  
  17. public string Nombre
  18. {
  19. get;
  20. set;
  21. }
  22.  
  23. public string Color
  24. {
  25. get;
  26. set;
  27. }
  28. }
  29.  
  30. internal class FrutaLinq
  31. {
  32. public static void Main()
  33. {
  34. // Creación de la colección con objetos Fruta:
  35. List<Fruta> frutas = new List<Fruta>(){
  36. new Fruta("pera", "verde"),
  37. new Fruta("mora", "rojo"),
  38. new Fruta("cereza", "rojo"),
  39. new Fruta("mango", "amarillo"),
  40. new Fruta("banano", "amarillo"),
  41. new Fruta("naranja", "naranaja"),
  42. new Fruta("tomate", "rojo"),
  43. new Fruta("melón", "amarillo"),
  44. new Fruta("manzana", "verde")
  45. };
  46.  
  47. // Seleccionamos los nombres de las frutas que no son rojas, y
  48. // que su primera letra es distinta de `p`:
  49. IEnumerable<string> resultado = from fruta in frutas where fruta.Color != "rojo"
  50. && fruta.Nombre[0] != 'p' orderby fruta.Nombre
  51. select fruta.Nombre;
  52.  
  53. // Visualización de resultados:
  54. Console.WriteLine("\nConsulta usando expresiones estándar:");
  55. foreach(string nombre in resultado)
  56. {
  57. Console.WriteLine("\tResultado: {0}.", nombre);
  58. }
  59.  
  60. // Ahora usamos expresiones lambda para la misma consulta:
  61. resultado = frutas.Where(fruta => fruta.Color != "rojo" && fruta.Nombre[0] != 'p').
  62. OrderBy(fruta => fruta.Nombre).Select(fruta => fruta.Nombre);
  63.  
  64. // Visualización de resultados:
  65. Console.WriteLine("\nConsulta usando expresiones lambda:");
  66. foreach(string nombre in resultado)
  67. {
  68. Console.WriteLine("\tResultado: {0}.", nombre);
  69. }
  70.  
  71. Console.WriteLine();
  72. }
  73. }
  74. }
Success #stdin #stdout 0.09s 24768KB
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.