Enumerable.Single
我在使用一些反编译器检查它时(大致)在方法中找到了这段代码:
foreach (TSource current in source)
{
if (predicate(current))
{
result = current;
num += 1L;
}
}
if (num > 1L)
{
throw Error.MoreThanOneMatch();
}
如您所见,它在投掷之前循环遍历所有项目。为什么它什么时候不坏num > 1
?