【发布时间】:2015-09-15 14:39:44
【问题描述】:
我需要一个按顺序添加的集合,就像列表一样。
该集合也可能是可观察的。
.NET 4 中有这样的内置集合吗?
【问题讨论】:
-
@andrew.cuthbert 一个列表可以有重复,我需要一个集合
-
一组不是有序的,非常基本的限制。如果要保持顺序,则必须在检查集合中是否已存在之后将其复制到列表中。移除当然是 O(n) 痛苦的。
-
@RayOldProf 在添加项目之前,您始终可以使用
List#Contains检查重复项。但我不认为您正在寻找的特定行为是内置的。 -
维护插入顺序的集合会很昂贵,因为有效实现集合的常用方法是在内部对事物进行排序。
-
如果 RDBMS 可以在 O(log N) 中做到这一点,那么内存中的结构也可以做到这一点。这不是低效的。