2009-10-25 19 views
5

Ich habe eine .csv-Datei (words.csv) mit 5000 Wörtern, die durch Kommas getrennt sind. Die meisten Zeichenfolgen sind wiederholte Werte.Elemente gruppieren und zählen

Kann ich LINQ verwenden folgendes zu tun:

A. Gruppe gemeinsame Wörter zusammen und zeigen Anzahl der wiederholten Worte

also, wenn Apfel 5 Mal wiederholt wurde und Banane 3 times..it sollte angezeigt werden

als

apple - 5
Banane - 3 und so weiter

B. erstellen Sie eine andere Textdatei mit Duplikate entfernt.

Antwort

6

Sicher, hier ist die LINQ-Syntax in C#:

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

Oder in "reinen" C# Methode ruft:

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

Und eine deutliche Liste von Wörtern erstellen Sie Verwenden Sie einfach den Distinct-Operator:

words.Distinct(); 
Verwandte Themen