Bad implementation of Enumerable.Single? 枚举 Single 的实现有问题吗?
- 论坛
- Bad implementation of Enumerable.Single? 枚举 Single 的实现有问题吗?
20 浏览
Bad implementation of Enumerable.Single? 枚举 Single 的实现有问题吗?
我在Reflector中的Enumerable.cs文件中发现了这个实现。
我认为,如果有超过2个项目满足条件,他们应该在这里停止循环,为什么他们总是循环遍历整个集合?为了验证是否Reflector错误地反汇编了dll,我编写了一个简单的测试:
对于这个测试案例,我认为它会打印"getting 0, getting 1",然后抛出异常。但事实是,它保持打印"getting 0... getting 10"并抛出异常。
他们实现这个方法的算法性原因是什么?
**编辑** 一些人认为这是由于谓词表达式的副作用,经过深思熟虑和一些测试案例,我得出结论**在这种情况下副作用并不重要**。如果您不同意这个结论,请提供一个例子。
**12年后** 这是2023年,我发现最新的.NET已将实现方式更改为正确方式。