5 Stimmen

Artikel gruppieren und zählen

Ich habe eine .csv-Datei (words.csv) mit 5000 Wörtern, die durch Kommas getrennt sind. Die meisten der Zeichenfolgen sind wiederholte Werte.

Kann ich LINQ verwenden, um das Folgende zu tun:

A. gemeinsame Wörter zusammenfassen und die Anzahl der wiederholten Wörter anzeigen

Wenn also Apfel 5 Mal und Banane 3 Mal wiederholt wurde, sollte es wie folgt angezeigt werden

Apfel - 5
Banane - 3 und so weiter

B. Erstellen Sie eine weitere Textdatei, in der die Duplikate entfernt wurden.

6voto

Drew Marsh Punkte 32833

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#-Methodenaufrufen:

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

Und um eine eindeutige Liste von Wörtern zu erstellen, verwenden Sie einfach den Operator Distinct:

words.Distinct();

1voto

Shiraz Bhaiji Punkte 62129

Es gibt ein bestimmtes Schlüsselwort in Linq, das Sie verwenden können.

http://www.shawson.co.uk/codeblog/linq-distinct/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X