SortedSet从起始位置枚举

时间:2013-01-27 03:28:02

标签: c# c#-4.0

我想从给定位置开始枚举一个sortedset。说我的集合包含[1,2,10,23,30]。我想搜索10然后从该位置进行枚举。我相信来自有序集合中固定位置的枚举在O(n)中运行,其中n是您要访问的元素的数量。但是通过索引访问是O(log n)。因此,如果我试图说找到10并获得索引2然后执行索引2的for循环 - N将是运行时O(n log n),这是不可接受的。

任何人都有这方面的经验吗?

2 个答案:

答案 0 :(得分:1)

使用GetViewBetween。它是为了范围扫描而制作的。

每当我使用新类时,我会在Reflector中查看其成员,尝试在那里发现有用的宝石。

答案 1 :(得分:0)

s.SkipWhile(x => x < 10)应为O(n),其中n是列表中元素的数量。

从一个元素移动到另一个元素很快;如果按索引查找,则从头开始移动到 i 元素可能不是。