2009-10-25 7 views
5

J'ai un fichier .csv (words.csv) contenant 5000 mots séparés par des virgules. La plupart des chaînes sont des valeurs répétées.Grouper et compter les articles

Puis-je utiliser LINQ pour effectuer les opérations suivantes:

groupe A. mots ensemble et le nombre montrent des mots répétés

donc si la pomme a été répétée 5 fois et la banane 3 times..it devrait afficher comme

pomme - 5
banane - 3 et ainsi de suite

B. Créer un fichier texte avec les doublons supprimés.

Répondre

6

Bien sûr, voici la syntaxe LINQ en C#:

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

Ou dans la méthode "pure" C# appelle:

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

Et pour créer une liste distincte de mots il suffit d'utiliser l'opérateur Distinct:

words.Distinct();