如何在不使用foreach的情况下获得字典中嵌套列表的数量总和?

时间:2009-07-23 14:32:02

标签: c# linq dictionary

我希望获得以下List DictionaryDictionary<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); s中的项目总数:

{{1}}

5 个答案:

答案 0 :(得分:21)

我相信这会让你有效而清晰地获得你想要的数量。在引擎盖下,它必须遍历列表,但为了获得总计数,没有办法避免这种情况。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

所有列表项的总数:

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

List包含单个列表计数:

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

答案 3 :(得分:0)

这个怎么样?

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

答案 4 :(得分:0)

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