2009-10-25 29 views
5

Tengo un archivo .csv (words.csv) que contiene 5000 palabras separadas por comas. La mayoría de las cadenas son valores repetidos.Agrupar y contar elementos

¿Puedo usar LINQ para hacer lo siguiente: las palabras comunes

A. agrupar y mostrar un conteo de palabras repetidas

por lo que si la manzana se ha repetido 5 veces y plátano 3 times..it debe mostrar como

manzana - 5
plátano - 3 y así sucesivamente

B. Crear otro archivo de texto con duplicados eliminados.

Respuesta

6

supuesto, aquí tienes la sintaxis de LINQ en C#:

from word in words 
group word into occurrences 
select new 
{ 
    Word = occurrences.Key, 
    Count = occurrences.Count() 
} 

O en "puro" C# método llama:

words.GroupBy(w => w) 
    .Select(o => new 
        { 
        Word = o.Key, 
        Count = o.Count() 
        }); 

y crear una lista distinta de palabras que solo use el operador Distintivo:

words.Distinct();