使用HashSet <int>创建整数集

use*_*693 4 c# int set

我想创建一个使用a表示整数集的类HashSet<int>.我希望它使用该内部容器跟踪集合中包含的值.到目前为止我做到了这一点:

class SetInteger
{
    HashSet<int> intTest= new HashSet<int>();
    intTest.Add(1);
    intTest.Add(2);
    intTest.Add(3);
    intTest.Add(4);
    intTest.Add(5);
    intTest.Add(6);
    intTest.Add(7);
    intTest.Add(8);
    intTest.Add(9);
    intTest.Add(10);
}
Run Code Online (Sandbox Code Playgroud)

所以,在这里我想我正在添加一些值HashSet,但是我没有看到它如何跟踪集合中包含的值.有任何想法吗?

Dan*_*ker 19

哈希集有一个Contains方法,允许您检查值是否在集合中.

此外,HashSet<T>实现ISet<T>接口并因此提供了许多用于处理集合的方法,例如并集和交集,并确定一组值是否是(适当的)超集或子集.

HashSet<int> intTest = new HashSet<int>()
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

bool has4 = intTest.Contains(4);    // Returns true
bool has11 = intTest.Contains(11);  // Returns false
bool result = intTest.IsSupersetOf(new []{ 4, 6, 7 }); // Returns true
Run Code Online (Sandbox Code Playgroud)

顺便问一下,你知道集合初始化器的语法吗?


您还可以foreach在集合上获取它包含的每个元素(以未指定的顺序):

foreach(int value in intTest)
{
    // Do something with value.
}
Run Code Online (Sandbox Code Playgroud)

或者将其转换为数组或可变列表(也以未指定的顺序):

int[] arr = intTest.ToArray();
List<int> lst = intTest.ToList();
Run Code Online (Sandbox Code Playgroud)