2009-10-25 18 views
5

Mam plik .csv (words.csv) zawierający 5000 słów oddzielonych przecinkami. Większość ciągów jest wartościami powtarzalnymi.Grupowanie i liczenie elementów

mogę używać LINQ aby wykonać następujące czynności:

A. grupowych wspólnych słów razem i wykazują liczby powtarzających się słów

więc jeśli jabłko zostało powtórzone 5 razy i banan 3 times..it powinny wykazywać jak

apple - 5
banan - 3 i tak dalej

B. Tworzenie inny plik tekstowy z duplikatów usunięte.

Odpowiedz

6

Jasne, oto składnia LINQ w C#:

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

Albo w sposób "czysty" C# wzywa:

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

i stworzyć odrębną listę słów po prostu użyj operatora Distinct:

words.Distinct();