检查枚举是否包含多个元素而不抛出异常?

时间:2016-08-19 10:41:57

标签: c# linq enumeration

我想检查一个枚举是否包含0,1或1+个元素。我想避免枚举整个序列的开销,因此要避免Count()

我知道Linq查询SingleOrDefault()可用于此目的,但在1+案例中添加了繁琐的异常处理。

没有Count()且没有异常处理的任何方法吗?

4 个答案:

答案 0 :(得分:4)

查看序列是否包含多个元素的一种方法是使用document.getElementById('presentClicks').addEventListener('click', addClick.bind(this, clickerCounter)); Take,如下所示:

Count

if (mySequence.Take(2).Count() == 2) { ... // Sequence has at least two elements } 限制最多计算两次,因此使用Take(2)并不像Count()那样昂贵。

如果您需要抓取第一个元素,请将mySequence.Count() > 1的结果存储在列表中,以避免再次迭代序列。

答案 1 :(得分:2)

.ElementatOrdefault(1) != null

答案 2 :(得分:2)

您可以使用skip和any。

list.Skip(n).Any();

答案 3 :(得分:0)

如果您想要返回符合某些条件的第一个元素,您应该使用FirstFirstOrDefault,而不是Single