C#Linq groupby方法语法

时间:2012-06-14 21:30:38

标签: c# linq

我有以下代码

 var myList = new List<int>() {10, 10, 10, 9, 15};

 var groupedMyList = myList.GroupBy(i => i).ToList();

 var hasFourOfSameValue = groupedMyList.Select(g => g.Count() == 4).Any();

问题是hasFour回归真实。我希望它是假的,因为列表中有最多三个具有相同值的整数? (我怀疑我在groupby中出错了,但我无法弄清楚如何改变它。)

问题序言:我想使用LINQ方法语法而不是LINQ查询语法。

2 个答案:

答案 0 :(得分:8)

你想:

var hasFourOfSameValue = groupedMyList.Any(grp => grp.Count() == 4);
如果输入序列包含任何元素,则

Any()返回true。

答案 1 :(得分:8)

表达式groupedMyList.Select(g => g.Count() == 4)返回{ false, false, false }。并且在非空序列上调用任何一个都是正确的。你想要:

var hasFourOfSameValue = groupedMyList.Any(g => g.Count() == 4);