Concrete Logo
Hamburger button

LINQ: Poucas linhas, pouco código e muita utilidade

  • Blog
  • 29 de Maio de 2016
Share

Uma das coisas mais estranhas que aprendi até agora (pelo menos no momento do aprendizado) foi o LINQ (Query Expression Syntax). A ideia de mudar completamente a sintaxe de um código em C# me assustou bastante. Porém, não demorou muito para eu encontrar alguns benefícios e tirar proveito disso.

Diferenças

O LINQ pode ser usado de basicamente duas formas:

1 – Fluent Syntax
2 – Query Expression

Enquanto a primeira é mais comum, por se tratar métodos extensíveis, e muitos profissionais da área já usam sem nem saber, a segunda dá mais indícios de uma tecnologia diferente, com sua própria sintaxe.

Abaixo, você consegue ver a diferença entre os dois modos de usar LINQ:

1 – Fluent Syntax

2 – Query Expression

Você ainda pode fazer um mix dos dois modos sem nenhum problema, até porque nem todos métodos do LINQ Fluent Syntax tem um correspondente na outra sintaxe.

Como aplicar em casos do dia-a-dia?

Os exemplos acima ilustram muito bem a forma como o LINQ pode ser escrito, mas vamos partir para um exemplo real e que pode ser usado no dia-a-dia?

Gerar senhas aleatórias com poucas linhas

Sabemos que essa não é a melhor nem a mais segura forma de gerar uma senha, mas está bem claro que é muito simples e de baixíssima complexidade completar essa tarefa. Basta usar algumas linhas para gerar senhas aleatórias, podendo ainda delimitar a quantidade de caracteres para a nova senha.

Converter listas completas com itens complexos

Quando trabalhamos com uma linguagem orientada a objetos quase sempre utilizamos os conceitos de polimorfismo e herança. Entretanto, converter dados de um tipo para outro pode gerar uma dor de cabeça, ainda mais quando se trata de uma coleção de itens. Mas não se preocupe, o LINQ pode te ajudar com isso também.

Iterar em mais de uma lista sem utilizar mais de um for

Adivinha quem pode te dar uma mão na hora de iterar em duas ou mais coleções diferentes, com itens do mesmo tipo e com a intenção de executar a mesma tarefa para todos os itens?

Gerar e/ou inicializar coleções

Sabemos que existem diversas bibliotecas de Mock por aí, porém você sempre precisa criar aquele for para inicializar uma coleção ou, pior ainda, inicializá-la “na unha”. Também existe um jeito melhor de fazer isso :)

E é isso! Qualquer dúvida, sugestão ou crítica construtiva, fique a vontade para comentar abaixo????

É desenvolvedor e quer fazer parte do nosso time? Acesse aqui.