说,我有一系列列表,我想得到所有列表中所有项目的计数。如何使用LINQ计算计数? (这里只是一般的好奇心)
以下是旧方法:
List<item>[] Lists = // (init the array of lists)
int count = 0;
foreach(List<item> list in Lists)
count+= list.Count;
return count;
你将如何LINQify? (c#语法,请)
答案 0 :(得分:27)
使用Sum()
方法:
int summedCount = Lists.Sum(l => l.Count);
答案 1 :(得分:12)
我更喜欢@ jrista的答案,但你可以做到
int summedCount = Lists.SelectMany( x => x ).Count();
只是想展示SelectMany的用法,以防你想用集合集合做其他事情。
答案 2 :(得分:4)
如果你想要花哨
int summedCount = Lists.Aggregate(0, (acc,list) => acc + list.Count);
但第一个答案肯定是最好的。