C# - Testando sua habilidade na resolução de um problema - II
Hoje vamos resolver o exercício proposto na semana anterior. |
A solução para o problema proposto é apenas uma sugestão de solução, visto que,
podem existir diversas formas de resolver o problema chegando ao mesmo resultado
final.
Resolução do problema
Para resolver o problema proposto vamos usar os recursos do LINQ fazendo uma consulta usando a sintaxe de consulta e realizar o agrupamento de elementos usando a cláusula Group.
A cláusula Group retorna uma sequência de objetos IGrouping<TKey,TElement> que contêm zero ou mais itens que correspondem ao valor de chave do grupo.
Um objeto que implementa IGrouping basicamente tem dois elementos em sua estrutura:
Vamos criar uma aplicação do tipo Console App(.NET Framework) no Visual Studio 2017 Community com o nome de CShp_Exercicio1.
A seguir temos o código do projeto :
using System.Linq; using static System.Console;
namespace CShp_Exercicio1
var numerosFrequencia = from numero in numeros WriteLine("\n\nO número e a frequência são : \n");
foreach (var numero in numerosFrequencia)
static void ExibeNumeros(int[]
numeros) |
Executando o projeto iremos obter o resultado a seguir:
Agora vamos entender como funciona a cláusula Group da LINQ.
Usamos a cláusula Group na consulta LINQ usada para realizar o agrupamento de elementos com base em um critério. No nosso caso usamos o próprio número como critério.
Para o nosso exemplo o número é a chave(numero.Key) e a quantidade que ele aparece no grupo é obtida usando o método Count (numero.Count).
O agrupamento é um dos recursos mais poderosos do LINQ, e, podemos agrupar dados da seguintes formas:
Por uma única propriedade.
Pela primeira letra de uma propriedade de cadeia de caracteres.
Por um intervalo numérico calculado.
Por predicado booliano ou outra expressão.
Por uma chave composta.
Para o exemplo isso não seria necessário, e, nossa consulta poderia ser escrita da seguinta forma:
var
numerosFrequencia = from numero in numeros
group numero by numero;
Pois não estamos fazendo nenhuma operação após realizar o agrupamento.
Pegue o código do projeto aqui : CShp_Exercicio1.txt
"Porque o reino de Deus não é comida nem
bebida, mas justiça, e paz, e alegria no Espírito Santo."
Romanos
14:17
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
LINQ to Objects - Realizando Consulta em Coleções de ... - Macoratti
LINQ - Consultas com estilo Fluent e Query Expression - II - Macoratti
LINQ - Revisando conceitos básicos - Macoratti
LINQ Operadores - Macoratti
LINQ - Realizando consultas de referência cruzada com ... - Macoratti