有没有人知道,与IEnumerable<T>相比,LINQ库(或公开可用的实用程序库)中是否有任何内置功能可用于优化IOrderedEnumerable<T>上的操作
例如,在理论上,当Contains<T>()扩展应用于有限的IOrderedEnumerable<T>并且T为IComparable时,它可能会被优化为使用二进制搜索。
另一个示例是Distinct<T>()的优化版本,它将是延迟的和可流式的(因为在有序的、可比较的集合上,您总是可以使用跳过/匹配技术来生成不同的集合)。
发布于 2009-07-17 14:39:29
这里有一些问题。
IOrderedEnumerable<T>上执行,因为它理想情况下需要对列表/数组进行索引器访问。因此,它将不得不调用类似于firstDistinct的ToList()/ToArray()之类的东西,但OrderBy在每个T的某些方面工作-它并不完全相同,除非您碰巧知道它是由item=>item订购的;这种情况很少发生(而且很难证明)。https://stackoverflow.com/questions/1143669
复制相似问题