LBu*_*kin 2 .net c# linq optimization
是否有人知道LINQ库(或公共可用的实用程序库)中是否存在任何内置功能以进行优化操作IOrderedEnumerable<T>,而不是IEnumerable<T>?
例如,理论上,当Contains<T>()扩展应用于有限IOrderedEnumerable<T>且T是IC可比较时,扩展可能被优化以使用二进制搜索.
另一个例子是优化版本的Distinct<T>()延迟和可流化(因为在有序的,可比较的集合中,您总是可以使用跳过/匹配技术来生成不同的集合).
那里有问题......
IOrderedEnumerable<T>,因为它理想地需要索引器访问列表/数组.所以它必须调用像ToList()/ ToArray()first 这样的东西Distinct对T物品OrderBy起作用,但是在每个物品的某些方面起作用T- 它们并不完全相同,除非您碰巧知道它是按顺序排列的item=>item; 这很少见(很难证明).