在C sharp中,hashset是一个容器,它是订单表格中不存在的项目的集合。当我们不希望有重复的数据时,就会使用这个hash集。Hashsets的工作方式类似于列表,但其性能比列表要好。Hashset只能存储相同类型的项目。它是一个动态集合,当我们向其中添加更多的项目时,哈希集的大小就会增加。这篇文章将包含创建和添加元素到hashset的过程。
例子1
在C sharp中启动一个hashset的程序,我们将在源代码中使用两个库。一个是system,另一个是system.collection。这两个头文件在程序中使用类和内置函数方面起着重要作用。
使用System;
使用System.Collections.Generic.Details。
方法一。
在类的内部,声明了主程序。为了创建一个hashset,我们使用集合库中的hashset类。一个新的hashset是通过使用new关键字创建的,因为它参与了hashset的动态创建。一个hashset是一个字符串变量,因为它包含所有类型的符号、字母数字值等。在hashset关键字之后,定义了hashset的名称。
# Hashset <string>myhash1 = new Hashset<string>();
一旦创建了hashset,我们现在将开始向hashset中一个接一个地添加项目。这种添加是手动完成的。用于输入数值的主要内置函数是C#的'add()'函数。这个函数是由一个新的哈希集的名字来调用的,它作为一个对象。要在hashset中输入的值被用作add函数参数中的一个参数。
# Myhash1.Add( "C");
我们通过使用相同的add()向hashset中输入了5个值。add函数的作用类似于字符串的append()函数,它不断地在字符串的末尾添加数值。添加完数值后,我们将显示它们。为了访问哈希集中的元素,我们将使用Foreach循环。这个循环将遍历到hashset的最后一个元素。
方法2:
另一种创建hashset的方法是通过使用一个集合初始化器来创建hashset。这与方法1不同,因为我们需要使用add()函数来添加项目。但是通过使用这个初始化器,我们可以在声明和创建hashset的时候添加值。
# Hashset <int>myhash2 = new Hashset<int>( ) {10,100,1000,10000,100000};
这里的hashset是整数数据类型的。当动态创建时,5个整数值被输入到该函数中。
为了显示这个hashset中的元素,我们再次使用Foreach循环,这样它就可以访问hashset的最后一个元素。
保存代码,这将通过MCS编译器和一个用于执行的Mono在终端中执行。
mono file.exe
你可以看到,通过使用Foreach循环,hashset的每个项目都会被显示出来。
例2
在添加元素后,这些项目和hashset可以通过删除它们或在hashset中添加新的项目来修改。现在我们将写一个简单的程序来删除hashset中的项目。
所以首先,我们将再次创建一个新的hashset,就像我们之前使用hashset类一样,通过使用add()方法,所有的元素都将被添加进来。
在删除任何项目之前,我们要显示hashset中已经存在的项目的数量。这将通过一个计数器函数来完成。这个count()函数将通过hashset对象被调用。
# Myhash.count()。
在所有的项目都被显示一遍之后,我们现在将通过一个remove函数将项目从hashset中移除。
# Myhash.Remove("Ruby");
在remove函数的参数中,我们传递我们想要移除的项目。在移除之后,同样的,count函数将计算移除一个项目之后剩下的元素。同样地,我们可以删除更多的项目。但如果有人想让整个哈希集变空,这可以通过使用clear()函数来实现。这是用来删除hashset中的所有元素。它也被称为hashset对象。
# Myhash.clear()。
然后,我们将通过count()函数计算项目来检查hashset是否为空。
例三
现在开始进行集合操作,hashset类包含了一些方法,用来对hashset进行一些操作。其中一个是UnionWith。这个操作用于修改当前的哈希集,在其中添加新的项目。所有的新项目都被附加到之前的项目上。但是为了保持完整性,重复的项目会被删除。例如,在向哈希集添加元素时,如果一个哈希集已经有了C sharp,但我们再次添加了C sharp这个项目,那么这个项目将被添加到当前的项目中。但是通过使用union操作,重复性就被消除了;如果一个项目已经存在,那么它将被添加,那么它将出现一次;这就是union。这一点将在一个例子中详细说明。
首先,我们将创建一个哈希集,然后向其添加一些项目。之后,再次通过hashset类创建另一个hashset,然后通过add()函数向其中添加一个项目。添加项目时应注意,有些项目应与我们在hashset中输入的项目相同。现在这两个hashset分别包含了所有的项目。我们将通过一个指定的函数连接它们。
现在我们将应用UnioWith()方法,这样我们就可以在联合的时候删除hashset中出现两次的复制项。这个函数是通过第一个哈希集的对象来调用的,然后参数将采用第二个哈希集的对象。
# Myhash1.UnionWith(myhash2)。
通过使用它,所有的项目都存在于第一个哈希集中。然后我们将打印第一个哈希集的值。
# IntersectWith()
与UnionWith()相反,还有一个操作符,用来获取那些被复制的项目。换句话说,从hashset中选择那些在hashset中出现两次的项目。因此,为了实现这一点,我们将遵循上述相同的例子;我们将创建两个hashset,然后向它们添加值。之后,我们将通过使用hashets的对象来应用相交函数。
# Myhash1.IntersectWith(myhash2)。
从结果来看,你可以看到只有两个值是相似的。
总结
Hashsets可以通过使用两种方法来创建。一种是来自头文件库中定义的hashset类。而第二种是通过集合初始化器。这两种方法都使用了不同的方法来添加哈希集中的项目。一旦项目被输入到hashets中,我们还可以对其进行修改。通过使用哈希集,我们可以很容易地添加或删除任何项目。这里还提到了两个基本的操作,用于管理hashset项目。我们已经通过在Ubuntu操作系统中实现的基本例子解释了hashets的所有这些功能。