您需要为需要保留唯一整数列表的类提供什么建议?
我需要将整数添加到集合中,并检查是否存在,例如Contains()。
还可以将它们作为字符串以列表形式显示,例如“1, 5, 10, 21”。
HashSet<T>
类提供高性能的集合操作。一个集合是不包含重复元素并且其元素没有特定顺序的集合...
HashSet<T>
对象的容量是对象可以容纳的元素数量。当向该对象添加元素时,HashSet<T>
对象的容量会自动增加。
HashSet<T>
类基于数学集合模型,并提供类似于访问Dictionary<TKey, TValue>
或Hashtable
集合中的键的高性能集合操作。简单来说,HashSet<T>
类可以被视为一个没有值的Dictionary<TKey, TValue>
集合。
HashSet<T>
集合未排序,并且不能包含重复元素...
String.Join(", ", a.OrderBy(_ => _))
。 - user7116如果您无法使用.NET 3.5,则无法使用HashSet。 如果是这种情况,可以基于Dictionary结构轻松自行创建。
public class Set<T> {
private class Unit { ... no behavior }
private Dictionary<T, Unit> d;
....
}
Unit是一种只有一个值的类型。您可以将元素映射到任何内容,只需使用键即可知道集合中包含什么。您在问题中所要求的操作很容易实现。
你可以从KeyedCollection类继承一个类。这样,你的键可以是值本身,你可以重写ToString方法以获得所需的输出。这可能会给你想要/需要的行为。
请注意,此答案适用于Q的2.0框架部分。