如何在 C# 中创建 HashTable 集合?

如何在 c# 中创建 hashtable 集合?

HashTable是 C# 中的非泛型集合。它存储键值对,类似于通用的“字典”集合。 HashTable 定义在

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 集合?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:42:03
下一篇 2025年12月16日 09:50:53

相关推荐

  • C# 中关键字 const 和 readonly 有什么区别?

    常量 常量字段是不能修改的字段。声明的时候需要给它赋值。 const int a = 5; Readonly ​​> 只读字段在声明时初始化,或者您也可以在构造函数中设置它。 让我们看一个示例,其中只读字段只有字段在构造函数内初始化 – 示例 class Calculate { r…

    2025年12月17日
    000
  • C# 中的 System.ArrayCopyTo() 与 System.ArrayClone()

    ArrayCopyTo() 方法将当前一维数组的所有元素复制到指定的一维数组中,从指定的目标数组索引开始。索引被指定为一个32位整数。 在C#中,CopyTo() 方法用于将一个数组的元素复制到另一个数组中。在这个方法中,你可以设置从源数组中复制的起始索引。 以下是一个示例,展示了在C#中使用数组类…

    2025年12月17日
    000
  • 如何将 JavaScript 数组转换为 C# 数组?

    假设我们的 JavaScript 数组是 – var myArr = new Array(5); myArr[0] = “Welcome”; myArr[1] = “to”; myArr[2] = “the”; myArr[3] = “Web”; myArr[4] = “World”; …

    2025年12月17日
    000
  • 在 C# 中使用 GZIP 格式压缩和解压缩文件

    要使用 GZIP 格式压缩和解压缩文件,请使用 GZipStream 类。 压缩 要压缩文件,请使用 GZipStream 类和 FileStream 类。设置以下参数。 要压缩的文件以及输出zip文件的名称。 这里,outputFile是输出文件,该文件被读入FileStream。 p> 示…

    2025年12月17日
    000
  • C#4.0 中的元组是什么?

    Tuples具有不同数据类型的元素序列。它被引入以返回一个Tuple的实例,无需单独指定每个元素的类型。 让我们创建一个包含两个元素的元组。以下是声明元组的方法。 − Tupleperson = new Tuple (32, “Steve”); 现在,例如检查元组中的第一项,它是一个整数 &#821…

    2025年12月17日
    000
  • 如何在 C# 中将列表转换为字符串?

    声明一个列表。 List l = new List (); 现在,将元素添加到列表中。 // elementsl.Add(“Accessories”);l.Add(“Footwear”);l.Add(“Watches”); 现在将其转换为字符串。 string str = string.Join(“…

    2025年12月17日
    000
  • C# 代码的优化技巧

    以下是一些建议 − 首选列表 在必要时使用列表。使用ArrayList进行相同的工作可能会使代码的工作速度变慢。特别是当您在同一个列表中存储多种类型的对象时。 使用乘法移位操作 与除法运算符相比,最好使用乘法移位操作,因为使用除法运算符会使代码变慢。 代码越少,占用的内存越少 尝试使用运算符来简洁代…

    2025年12月17日
    000
  • 如何捕获 C# 中 async void 方法抛出的异常?

    在同步 C# 代码中,异常在调用堆栈中向上传播,直到到达可以处理异常的适当 catch 块。但是,异步方法中的异常处理并不那么简单。 C# 中的异步方法可以具有三种类型的返回值:void、Task 和 Task。当返回类型为 Task 或 Task 的异步方法中发生异常时,异常对象将包装在 Aggr…

    2025年12月17日
    000
  • C# 中的抽象关键字

    C#中的abstract关键字用于抽象类。 C# 中的抽象类包括抽象方法和非抽象方法。您无法实例化抽象类。 抽象类 Vehicle 和抽象方法 display() 的示例 – public abstract class Vehicle { public abstract void dis…

    2025年12月17日
    000
  • C#显示线程优先级的程序

    要在 C# 中显示线程的优先级,请使用 Priority 属性。 首先,使用 currentThread 属性显示有关线程的信息 – Thread thread = Thread.CurrentThread; 现在使用 thread.Priority 属性来显示线程的优先级 &#8211…

    2025年12月17日
    000
  • C# 中交错数组的元素类型是什么?

    交错数组是数组的数组,因此它的元素是引用类型并初始化为 null。 让我们看看如何使用交错数组 – 声明锯齿状数组 – int [][] marks; 现在,让我们初始化它,其中marks是一个由5个整数组成的数组 – int[][] marks = new in…

    2025年12月17日
    000
  • 如何在 C# 中使用 Newtonsoft json 将 JSON 反序列化为 .NET 对象并从数组中仅选择一个值?

    WebClient 类提供了向由 URI 标识的任何本地、Intranet 或 Internet 资源发送数据或从其接收数据的常用方法。 WebClient 类使用 WebRequest 类提供对资源的访问。 WebClient 实例可以使用通过 WebRequest.RegisterPrefix …

    2025年12月17日
    000
  • 如何在 LINQ C# 中同时使用 Take 和 Skip 运算符?

    Take 运算符用于从数组中返回给定数量的元素,并且数组 Take,从 a 中的第一个元素开始将元素提取到指定位置sequence. Example 1 的翻译为:sequence. 示例1 class Program{ static void Main(string[] args){ List n…

    2025年12月17日
    000
  • 如何在 C# 中访问矩形数组中的元素?

    要从矩形数组中访问元素,您只需要设置要获取元素的索引。多维数组也称为矩形数组 − a[0,1]; // second element 下面是一个示例,展示了如何在C#中使用矩形数组并访问一个元素 − 示例 using System;namespace Demo { class Program { s…

    2025年12月17日
    000
  • C# 中字典和数组有什么区别?

    字典 字典是C#中的键值对集合。字典包含在System.Collection.Generics命名空间中。 声明一个字典的方法如下: IDictionary d = new Dictionary(); 要添加元素 − IDictionary d = new Dictionary();d.Add(1,…

    2025年12月17日
    000
  • 在 C# 中使用哈希表和字典

    Hashtable Hashtable class represents a collection of key-and-value pairs that are organized based on the hash code of the key. It uses the key to acce…

    2025年12月17日
    000
  • C# 中的finally 语句是什么?

    final 块用于执行一组给定的语句,无论是否抛出异常。例如,如果打开一个文件,无论是否引发异常,都必须关闭该文件。 错误处理块是使用 try、catch 和 finally 关键字实现的。 示例 您可以尝试运行以下代码来实现finally语句 – using System;namesp…

    2025年12月17日
    000
  • 在 Linux 中执行 C# 代码

    到目前为止,以 .net 为中心的应用程序都是针对 windows 操作系统的,但现在 microsoft 推出了一种名为 mono 的新跨平台应用程序,它可以执行在 .net 下开发的应用程序 Mono Mono 是一个开源实用程序,它允许开发人员在 Mac 或 Linux 等其他平台上执行以 .…

    2025年12月17日
    000
  • C# 中打印转义字符的方法

    以下是 C# 中的转义字符,显示列建议如何在 C# 中使用和打印它们 – Escape字符 描述 图案 显示 a td>匹配响铃字符 u0007。a“Warning!”中的“u0007” + ‘u0007’b在字符类中,匹配退格键 u0008。[b ]{3,…

    2025年12月17日
    000
  • C# 应用程序中的退出方法

    Environment.Exit() 方法 Environment.Exit() 方法终止进程并向操作系统返回退出代码 – Environment.Exit(exitCode); 使用 exitCode 作为 0(零)来显示该过程已成功完成。 使用 exitCode 作为非零数字来显示错…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信