fork download
  1. using static System.Console;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program {
  6. public static void Main() {
  7. var produtos = new List<Produto> { new Produto {ProdutoId = 1, Descricao = "P1", Preco = 10.00M, Estoque = 10 },
  8. new Produto {ProdutoId = 2, Descricao = "P2", Preco = 20.00M, Estoque = 20 }};
  9. var filtrado = Lista(produtos);
  10. foreach (var produto in filtrado) WriteLine(produto.ProdutoId);
  11. filtrado = FiltreNome(produtos, "P2");
  12. WriteLine("Filtrado");
  13. foreach (var produto in filtrado) WriteLine(produto.ProdutoId);
  14. }
  15. public static IEnumerable<Produto> Lista(IEnumerable<Produto> produtos) {
  16. return from p in produtos
  17. select new Produto {
  18. ProdutoId = p.ProdutoId,
  19. Descricao = p.Descricao,
  20. Preco = p.Preco,
  21. Estoque = p.Estoque
  22. };
  23. }
  24. public static IEnumerable<Produto> FiltreNome(IEnumerable<Produto> produtos, string descricao) {
  25. var query = from p in produtos
  26. where p.Descricao.StartsWith(descricao)
  27. select p;
  28. return Lista(query);
  29. }
  30. }
  31.  
  32. public class Produto {
  33. public int ProdutoId;
  34. public string Descricao;
  35. public decimal Preco;
  36. public int Estoque;
  37. }
  38.  
  39. //https://pt.stackoverflow.com/q/108757/101
Success #stdin #stdout 0.03s 18312KB
stdin
Standard input is empty
stdout
1
2
Filtrado
2