2009-07-23 19 views
7
私は、次の DictionaryList S内の項目の合計数を取得したい

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

はい。私は辞書のリスト項目数のすべての項目のトークルカウントをしたい。 – uzay95

答えて

18

私は、これは効率的かつ明確にあなたがしたいのカウントを取得すると信じて。フードの下では、リストを繰り返し処理する必要がありますが、合計を得るには、これを避ける方法はありません。

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

をどのようにこのことについて?

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

オハイは最後のコメントを見ていませんでした...まあまあ – 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合計= dictionary.Sum(X => x.Value.Count());

関連する問題