2012-05-05 4 views
0

나는 단어 목록을 가지고 있으며, 각 단어를 세어보고 싶습니다. 그 다음 상위 1000 개를 단어 발생 수순으로 내림차순으로 선택하십시오. 이 작업을 수행하는 빠른 방법이 있습니다. 모두에게 감사드립니다.목록에서 항목 수 가져 오기 C#

for (int j = 0; j < tokens.Length; j++) 
{ 
    if (!yy.ContainsKey(tokens[j])) 
        yy.Add(tokens[j], 1); 
       else 
        yy[tokens[j]]++; 

} 

목록으로 사전을 변경하고 싶습니다.

+0

당신은 무엇을하려고 했습니까? 코드는 어디에 있습니까? –

+0

나는 여전히 빠른 길을 제안하는 것을 기다리고있다. – FSm

+1

하지만 아직 아무 것도 해보지 않으셨습니까? 너도 그걸 구글 했니? – SimpleVar

답변

1
List<string> yourList = ... 

var top1000 = yourList.GroupBy(s => s).Select(g => new { Value = g.Key, Count = g.Count() }) 
         .OrderByDescending(p => p.Count).Take(1000); 
+0

대단히 감사합니다 – FSm

4

당신은 LINQ 사용하여 수행 할 수 있습니다

var query = words.GroupBy(word => word) 
       .OrderByDescending(g => g.Count()) 
       .Select(g => g.Key) 
       .Take(1000); 
+0

대단히 감사합니다 – FSm

관련 문제