Header Ads Widget

Responsive Advertisement

Ticker

6/recent/ticker-posts

Utilizando consultas LINQ


As consultas LINQ nos permitem fazer consultas de forma consistente em objetos e bases de dados relacionais. As expressões são escritas em uma sintaxe de consulta declarativa nos permitindo efetuar operações em nossos dados com o mínimo de código.

Você pode utilizar estas queries para SQL, documentos XML, datasets ADO.NET  e qualquer coleção de objetos que implemente a interface IEnumerable ou IEnumerable<T>.

Para entender as consultas, vamos utilzar como exemplo a classe Produtos:

public class Produto
{
    public string Nome { get; set; }
public string Categoria { get; set; }
public int Preco { get; set; }

public Produto(string nome, string categoria, int preco)
{
    Nome = nome;
Categoria = categoria;
Preco = preco;
    }
}

Criamos uma lista com nossos 6 produtos:

List<Produto> produtos = new List<Produto>()
{
    new Produto("Camiseta Branca", "Roupa", 100),
new Produto("Camiseta Azul", "Roupa", 120),
new Produto("Tenis Preto", "Calçado", 200),
new Produto("Sapato Marrom", "Calçado", 180),
new Produto("Brinco de Prata", "Acessório", 199),
new Produto("Pulseira de ouro", "Acessório", 500),
};

Neste exemplo vamos utilizar o LINQ para filtrar nossos produtos de acordo com a Categoria:

IEnumerable<Produto> lista = from item in produtos
         where produto.Categoria == "Roupa"
         select item;

A expressão from produto in produtos é semelhante ao "foreach", ela informa que iremos iterar sobre todos os itens dentro da nossa lista de produtos, where é nossa condição, semelhante à sintaxe do próprio SQL, dizemos que devem ser selecionados apenas produtos os quais a categoria é "Roupa" e por fim select item

Agora com a nossa expressão LINQ feita, podemos usar um loop para mostrar todos os itens da lista

foreach(Produto p in lista)
{
    Console.WriteLine("Produto:" + p.Nome + ", Preço:" + p.Preco);
}

Retorno = Produto:Camiseta Branca, Preço:100 | Produto:Camiseta Azul, Preço:120

No próximo post irei mostrar como simplificar consultas utilizando funções lambda.

Postar um comentário

0 Comentários