GroupBy and Having using LINQ

image

Olá pessoal, meu nome é Mauricio Junior e hoje eu vou falar e mostrar como fazer group by e having using LINQ com a linguagem C# e a ferramenta Visual Studio da Microsoft.

É importante saber que isso é bom fazer quando você quer agrupar dados por algum campo e contar quanto dos dados estão duplicados por exemplo.

Quando trabalho diretamente com o banco de dados / database, tenho uma diferente referência para fazer um group by com having, mas com LINQ talvez você não tenha aprendido ainda e sinceramente não é difícil de aplicar ou aprender.

Estou usando EntityFramework para me conectar com o database, mas você pode usar qualquer drive para comunicar com base e depois disso basta fazer um LINQ.

No meu caso, eu preciso agrupar pela URL e contar quantas URLs estão apontando para o mesmo local, ou seja, que estão duplicadas com mais de um dado.

Veja o código 1.1 mostrando como fazer.

_youRepositoryClass
	.GroupBy(i => i.Url) 
	.Where(grp => grp.Count() > 1) 
	.Select(grp => grp.Key) 
	.ToList();
	

Código 1.1 - LINQ

Primeiro eu coloquei a minha class e já chamei o GroupBy(i => i.Url) Where o grupo conta com maior que 1 e seleciona o grupo pela chave. Para finalizar basta retornar a lista.

Espero que tenha gostado e qualquer coisa pode entrar em contato comigo pelo site ecode10.com ou pelo academy ecode10.academy.