对于需要保存唯一整数列表的类,您有什么建议?
我想要将()整数添加到集合中,并检查是否存在,例如Contains()。
也会很好地让他们在一个列表中作为一个字符串显示,即。1、5、10、21。
发布于 2008-10-02 18:06:28
HashSet
HashSet<T>类提供高性能的集合操作。集合是不包含重复元素的集合,并且其元素没有特定的顺序...
HashSet<T>对象的容量是该对象可以容纳的元素的数量。当向对象添加元素时,HashSet<T>对象的容量会自动增加。
HashSet<T>类基于数学集合模型,并提供类似于访问Dictionary或Hashtable集合的键的高性能集合操作。简单地说,HashSet<T>类可以看作是一个没有值的Dictionary集合。
HashSet<T>集合未排序且不能包含重复元素...
发布于 2008-10-02 18:46:47
在我的测试中,我发现在处理非常大的数据集(在我的例子中是100,000+)时,带有虚拟值的Dictionary比HashSet更快。我想这是因为字典允许你设置一个初始容量,但我真的不知道。在您描述的这种情况下,如果我期望一个非常大的数字集,然后(或者当我添加到Dictionary中,取决于意图)使用字符串构建器迭代它,以创建输出字符串时,我可能会使用Dictionary。
发布于 2008-10-02 18:17:03
如果你不能使用.NET 3.5,那么你就不能使用HashSet。如果是这样的话,可以很容易地根据Dictionary结构滚动自己的内容。
public class Set<T> {
private class Unit { ... no behavior }
private Dictionary<T, Unit> d;
....
}Unit应该是只有一个值的类型。将元素映射到什么并不重要,只需使用键来了解集合中的内容即可。您在问题中要求的操作很容易实现。
https://stackoverflow.com/questions/163732
复制相似问题