using static System.Console;
using System.Collections.Generic;
using System.Linq;
public class Program {
public static void Main() {
var produtos = new List<Produto> { new Produto {ProdutoId = 1, Descricao = "P1", Preco = 10.00M, Estoque = 10 },
new Produto {ProdutoId = 2, Descricao = "P2", Preco = 20.00M, Estoque = 20 }};
var filtrado = Lista(produtos);
foreach (var produto in filtrado) WriteLine(produto.ProdutoId);
filtrado = FiltreNome(produtos, "P2");
WriteLine("Filtrado");
foreach (var produto in filtrado) WriteLine(produto.ProdutoId);
}
public static IEnumerable<Produto> Lista(IEnumerable<Produto> produtos) {
return from p in produtos
select new Produto {
ProdutoId = p.ProdutoId,
Descricao = p.Descricao,
Preco = p.Preco,
Estoque = p.Estoque
};
}
public static IEnumerable<Produto> FiltreNome(IEnumerable<Produto> produtos, string descricao) {
var query = from p in produtos
where p.Descricao.StartsWith(descricao)
select p;
return Lista(query);
}
}
public class Produto {
public int ProdutoId;
public string Descricao;
public decimal Preco;
public int Estoque;
}
//https://pt.stackoverflow.com/q/108757/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgkJCQkJCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJCXZhciBwcm9kdXRvcyA9IG5ldyBMaXN0PFByb2R1dG8+IHsgbmV3IFByb2R1dG8ge1Byb2R1dG9JZCA9IDEsIERlc2NyaWNhbyA9ICJQMSIsIFByZWNvID0gMTAuMDBNLCBFc3RvcXVlID0gMTAgfSwKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQcm9kdXRvIHtQcm9kdXRvSWQgPSAyLCBEZXNjcmljYW8gPSAiUDIiLCBQcmVjbyA9IDIwLjAwTSwgRXN0b3F1ZSA9IDIwIH19OwoJCXZhciBmaWx0cmFkbyA9IExpc3RhKHByb2R1dG9zKTsKCQlmb3JlYWNoICh2YXIgcHJvZHV0byBpbiBmaWx0cmFkbykgV3JpdGVMaW5lKHByb2R1dG8uUHJvZHV0b0lkKTsKCQlmaWx0cmFkbyA9IEZpbHRyZU5vbWUocHJvZHV0b3MsICJQMiIpOwoJCVdyaXRlTGluZSgiRmlsdHJhZG8iKTsKCQlmb3JlYWNoICh2YXIgcHJvZHV0byBpbiBmaWx0cmFkbykgV3JpdGVMaW5lKHByb2R1dG8uUHJvZHV0b0lkKTsKCX0KCXB1YmxpYyBzdGF0aWMgSUVudW1lcmFibGU8UHJvZHV0bz4gTGlzdGEoSUVudW1lcmFibGU8UHJvZHV0bz4gcHJvZHV0b3MpIHsKCQlyZXR1cm4gZnJvbSBwIGluIHByb2R1dG9zCgkJCXNlbGVjdCBuZXcgUHJvZHV0byB7CgkJCQlQcm9kdXRvSWQgPSBwLlByb2R1dG9JZCwKCQkJCURlc2NyaWNhbyA9IHAuRGVzY3JpY2FvLAoJCQkJUHJlY28gPSBwLlByZWNvLAoJCQkJRXN0b3F1ZSA9IHAuRXN0b3F1ZQoJCQl9OwoJfQoJcHVibGljIHN0YXRpYyBJRW51bWVyYWJsZTxQcm9kdXRvPiBGaWx0cmVOb21lKElFbnVtZXJhYmxlPFByb2R1dG8+IHByb2R1dG9zLCBzdHJpbmcgZGVzY3JpY2FvKSB7CgkJdmFyIHF1ZXJ5ID0gZnJvbSBwIGluIHByb2R1dG9zCiAgICAgICAgICAgIHdoZXJlIHAuRGVzY3JpY2FvLlN0YXJ0c1dpdGgoZGVzY3JpY2FvKQoJCQlzZWxlY3QgcDsKCQlyZXR1cm4gTGlzdGEocXVlcnkpOwoJfQp9CgpwdWJsaWMgY2xhc3MgUHJvZHV0byB7CglwdWJsaWMgaW50IFByb2R1dG9JZDsKCXB1YmxpYyBzdHJpbmcgRGVzY3JpY2FvOwoJcHVibGljIGRlY2ltYWwgUHJlY287CglwdWJsaWMgaW50IEVzdG9xdWU7Cn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzEwODc1Ny8xMDE=