【发布时间】:2017-10-06 15:24:46
【问题描述】:
我正在寻找一个具有快速包含检查和添加/删除方法的集合(如HashSet<T>,如果T 实施良好,则接近 O(1)),但这也有一个命令。这并不意味着索引访问 - 它只是意味着如果我迭代它,元素的顺序与我添加它们的顺序相同。
在 C# 中有类似的东西吗? HashSet<T> 甚至可以解决问题吗?(我在 MSDN 上找不到该信息,我查看了 HashSet<T> 和 HashSet<T>.GetEnumerator。)
如果没有,我正在考虑使用包含内部HashSet<T> 和内部LinkedList<T> 的类来实现它。 HashSet<T> 将公开添加、删除和包含检查,而 LinkedList<T> 将公开枚举器。
【问题讨论】:
-
HashTable会这样做吗? -
您提议的实现将删除 O(n) 项,而不是 O(1)。
-
OrderedDictionary 是一个选项。
标签: c# collections