Fil*_*erg 7 .net time-complexity
是HashSet.ElementAtO(1)中的实现,如果不是,它是什么?
不,是 O(n)。所有的扩展方法IEnumerable<T>都必须是 O(n)(因为唯一IEnumerable<T>可以做的就是......枚举)。虽然,正如评论中所指出的,他们确实尝试转换为可以更快地实现操作的接口(例如,ElementAt将尝试转换IList<T>为以实现 O(1) 操作)。并不是说在无论如何HashSet<T>都没有实施的情况下有帮助IList<T>。
因为HashSet<T>“ElementAt”的概念无论如何都没有意义,因为没有这样的“排序”。你基本上只是得到一个随机元素。