2009-07-23 5 views
7
나는 다음 DictionaryList의에서 항목의 총 수를 얻으려면

:foreach를 사용하지 않고 사전에서 중첩 목록의 개수 합계를 얻으려면 어떻게해야합니까?

Dictionary<int, List<string>> dd = new Dictionary<int, List<string>>() { 
    {1, new List<string> {"cem"}}, 
    {2, new List<string> {"cem", "canan"}}, 
    {3, new List<string> {"canan", "cenk", "cem"}} 
}; 

// This only returns an enumerated array. 
var i = (from c in dd 
     select c.Value.Count).Select(p=>p); 
+0

총 개수를 원하십니까? 예제 6의 경우? –

+0

예. 사전 목록 항목 수의 모든 항목을 totalk하고 싶습니다. – uzay95

답변

18

나는 이것이 당신이 효율적이고 명확하게 할 수를 얻을 것으로 예상 . 후드 아래에서 목록을 반복해야하지만 총 카운트를 얻으려면이를 피할 방법이 없습니다.

var i = dd.Values.Sum(x => x.Count); 
0

을이 방법에 대해? 모든 목록 항목의

var l = dd.Select(i => new {i, i.Value.Count}); 
+0

ohhh는 그 마지막 코멘트를 보지 않았다. .. 오 잘 \ – BigBlondeViking

+0

이것은 나의 요청에 좋지만 응답이 없다. – uzay95

1
var i = dd.Values.SelectMany(v => v).Count(); 
0

총 수 :

dd.SelectMany(i => i.Value).Count(); 

List 포함 된 개별 목록 개수 :

dd.Select(i => i.Value.Count).ToList() 
+0

SelectMany와 함께 사용하는 것이 좋습니다. – uzay95

0

var total = dictionary.Sum (x => x.Value.Count());

관련 문제