.NETProgramação

#DevInsights: Operações com conjuntos usando C# e LINQ

Você achava que a teoria dos conjuntos na matemática do ensino fundamental não tinha utilidade prática?

Esse post é apenas para dar uma ideia para quem ainda não conhecia ou ainda não tinha feito o link entre esses conceitos (matemática, programação, bases de dados) super interessantes e úteis.

Operações de União (Union) e Intersecção (Intersect) com C# e LINQ
Exemplo: União e Intersecção de conjuntos

A seguir, mostro 2 exemplos simples com as operações de União e Intersecção de conjuntos, usando o LINQ do C#:

  • O primeiro caso é apenas para mostrar como representar uma situação bem simples com números como normalmente é apresentado esse conceito.
  • O segundo caso também é muito simples mas já mostra por exemplo mais prático com 2 listas de funcionários.
    • Para o caso de União (Union), poderíamos, por exemplo, supor que em uma dada situação em que fosse necessário obter a relação de nomes todos os funcionários sem repeti-los, neste caso, a fonte de dados seriam a partir de 2 listas diferentes disponíveis para filtrar e selecionar os dados.
    • Para o caso da Intersecção (Intersect), poderíamos supor um caso em que fosse necessário relacionar apenas os nomes dos funcionários que estivessem presentes nas 2 listas.
  • São exemplos muito simples usando Arrays pequenos e dados simulados, mas que podem ser aplicados a muitos casos do dia a dia. Essas operações inclusive podem ser utilizadas e/ou combinadas com dados obtidos de bancos de dados ou APIs externas.
  • Outro ponto interessante de ressaltar, é que, embora eu tenha usado o LINQ no exemplo, os bancos de dados relacionais também disponibilizam este tipo de recurso. Para quem ainda não presenciou, saiba que uitos devs e DBAs, usam e abusam deste tipo de operação em consultas as bases de dados.

Link do Gist: https://gist.github.com/jpprobr/1fbe4016c4a8788642cd78c1ce45e0cb

Embora neste exemplo eu tenha usado apenas o Union e o Intersect, também existem outros tipos de operação.“Teste lá também!” 😉

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *