system. collections. namespace.
hashtable计算每个键的哈希码并将其存储在内部不同的桶中。然后,当访问值时,哈希码将与指定键的哈希码进行匹配。因此,查找通过 hashtable 进行了优化。
在本教程中,我们将了解如何在 c# 中创建 hashtable 集合。
哈希表功能在我们开始创建 hashtable 之前,让我们看看 c# 中 hashtable 集合的一些显着功能。
hashtable 集合存储键值对。
哈希表是系统的一部分。 c# 中的集合命名空间并实现 idictionary 接口。 hashtable 的元素存储为 dictionaryentry 对象。
哈希表的键不能为空并且是唯一的。但是,值可以为空或重复。
可以使用索引器中的键来访问哈希表中的值,就像访问数组值一样。
hashtable 中的键是不可变的对象。这些关键对象中的每一个都提供了一个哈希函数。
典型的 hashtable 类实现 c# 的 idictionary、icollection、iserializable、ienumerable、ideserializationcallback 和 icloneable 接口。
hashtable中存储的元素可以是相同类型,也可以是不同类型。
牢记这些显着特征,现在让我们讨论如何在 c# 中创建哈希表。
如何在 c# 中创建 hashtable 集合?c#的hashtable类提供了16个重载构造函数来创建hashtable。
下表显示了我们将在本文中使用的 hashtable 构造函数。
构造函数描述
哈希表() 初始化新的、具有默认初始容量、哈希码提供程序、比较器和负载因子的 hashtable 类的空实例。
哈希表(idictionary) 创建 hashtable 类的新实例并使用指定字典的内容对其进行初始化。
注意- 要了解有关 c# 中 hashtable 类的更多信息,请阅读我们的文章 c#-hashtable 类。
让我们看看在 c# 中创建 hashtable 集合通常遵循的步骤。
首先,我们包括 system.我们程序中的集合命名空间
using system. collections;
接下来,我们使用 hashtable 类创建一个哈希表。为此,我们使用默认构造函数。
hashtable hashtable_name = new hashtable();
现在我们可以使用“add()”方法将元素添加到hashtable中。
所以这里,我们可以在创建hashtable实例的同时初始化整个hashtable,也可以使用add()方法将元素一一添加到hashtable中。
示例 1以下程序演示了用 c# 创建 hashtable。
using system;using system. collections;class myhashtable { // main method static public void main() { // create hashtable using the default constructor hashtable indiannumbersystem = new hashtable(); //add a key/value pair using the add() method indiannumbersystem.add(1,ones); indiannumbersystem.add(10,tens); indiannumbersystem.add(100,hundred); indiannumbersystem.add(1000,thousand); indiannumbersystem.add(10000,ten thousand); indiannumbersystem.add(100000,lac); indiannumbersystem.add(1000000,ten lac); indiannumbersystem.add(10000000,crore); //display hashtable contents console.writeline(key, value pairs from indian number system:); foreach(dictionaryentry ele1 in indiannumbersystem){ console.writeline({0} ({1}) , ele1.key, ele1.value); } }}
在上面的程序中,我们使用默认构造函数定义了一个 hashtable 实例。然后我们使用 add()方法将键/值对添加到hashtable中。最后,使用 for-each 循环将 hashtable 内容一一打印出来。
输出上述程序生成以下输出。
key, value pairs from indian number system:100 (hundred) 1000 (thousand) 10 (tens) 1000000 (ten lac) 100000 (lac) 10000000 (crore) 10000 (ten thousand) 1 (ones)
程序显示一个包含印度数字系统的位值的哈希表。请注意,由于这是一个创建哈希表并向其中添加内容的简单程序,因此输出未格式化。
示例 2让我们再举一个在 c# 中创建 hashtable 的例子。以下程序使用不同的构造函数来创建 hashtable。
using system;using system.collections;class myhashtable { // main method static public void main() { // create hashtable without using add method hashtable my_hashtable1 = new hashtable() {{k1, new york}}; // adding key/value pair in the hashtable using add() method my_hashtable1.add(k2, paris); my_hashtable1.add(k3, london); my_hashtable1.add(k4, mumbai); my_hashtable1.add(k5, berlin); console.writeline(key, value pairs from my_hashtable1:); foreach(dictionaryentry ele1 in my_hashtable1){ console.writeline({0} and {1} , ele1.key, ele1.value); } }}
正如我们在上面的代码中看到的,首先我们创建一个具有一个键值对的 hashtable 对象。然后我们使用hashtable类的add()方法向hashtable添加元素。最后,使用 for-each 循环,迭代 hashtable 对象以打印每个 hashtable 元素(键值对)。
输出上面的程序产生以下输出。
key, value pairs from my_hashtable1:k2 and paris k1 and new york k3 and london k4 and mumbai k5 and berlin
在上面的输出中,键值对按值的字母顺序逆序显示。这是哈希表的默认输出,因为我们没有提供任何代码来格式化输出。 hashtable 类提供了各种方法来组织/格式化输出,我们将在后续教程中学习这些方法。
在本教程中,我们讨论了如何在 c# 中创建 hashtable 集合。 hashtable 是键值对的非通用集合。 hashtable 中的键是唯一的非空值。值可以为空和重复。我们可以使用systems提供的hashtable类在c#中创建hashtable。集合接口并使用此类提供的各种方法对其进行修改。
以上就是如何在 c# 中创建 hashtable 集合?的详细内容。
