我想从给定位置开始枚举一个排序集。假设我的集合包含 [1,2,10,23,30]。我想搜索 10 然后从该位置枚举。我相信从排序集中的固定位置进行的枚举在 O(n) 中运行,其中 n 是您要访问的元素数。但是按索引访问是 O(log n)。因此,如果我试图说找到 10 并获得索引 2,然后执行索引 2 - N 的 for 循环,这将是运行时 O(n log n),这是不可接受的。
有人在这里有经验吗?
使用GetViewBetween。它是为范围扫描而制作的。
每当我使用一个新类时,我都会在 Reflector 中查看它的成员,以尝试在那里发现有用的宝石。
s.SkipWhile(x => x < 10)
应该是O(n)
,其中 n 是列表中的元素数。
从一个元素移动到下一个元素很快;如果按索引查找,则从一开始就移动到第i个元素可能不是。