搜索
首页后端开发C#.Net教程如何在 C# 中向哈希表集合添加项目

如何在 C# 中向哈希表集合添加项目

我们已经讨论了哈希表的基础知识。 C# 中的哈希表集合用于存储键值对,其中每个键值对都是根据键的哈希码进行组织的。该哈希码是使用哈希码函数计算的。在内部,哈希表使用桶来存储数据。存储桶只不过是哈希表中的一组虚拟元素。哈希码与每个存储桶相关联。

从编程上来说,哈希表类似于字典对象,但与字典对象不同的是,哈希表可以存储不同数据类型的对象。在性能方面,哈希表表现出较低的性能,因为哈希表的数据元素是对象。因此,为了从哈希表中存储和检索值,必须执行对象的装箱和拆箱。

在本文中,我们将讨论如何向哈希表集合添加项目。

如何将项目添加到哈希表集合?

C#中的hashtable集合是使用hashtable类实现的。此类提供了各种方法来对哈希表执行不同的操作。其中一种方法是 Add()

哈希表类的Add()方法用于在哈希表中添加具有指定键及其对应值的元素。当向哈希表添加键值对时,我们应该确保键不重复或为空,因为哈希表只允许非空且唯一的键。

在C#的哈希表集合中,我们可以拥有不同数据类型的键/值对元素。

现在让我们继续讨论 Add() 方法。

下面给出了哈希表集合的Add()方法的一般原型。

语法

public virtual void Add(object key, object value);

参数

  • Key - 正在添加的元素的指定键(类型 System.Object)。应为非空。

  • Value - 元素的指定值(类型 System.Object)此值可以为 null。

异常:此方法抛出以下异常。

  • ArgumentNullException − 当键为 null 时。

  • ArgumentException − 具有相同键的元素已存在。

  • NotSupportedException − 哈希表具有固定大小或只读。

如果我们有一个哈希表对象声明如下 -

Hashtable hshTable = new Hashtable();

然后我们可以使用 Add() 方法向该哈希表对象添加一个元素,如下所示 -

hshTable.Add("msg", "charVal");

由于哈希表允许混合数据类型的元素,因此我们也可以在同一个哈希表中添加数值 -

hshTable.Add(1, 2022);

除了使用 Add() 方法,我们还可以直接将值分配给哈希表。例如,要添加 key = 2 的元素,我们可以简单地编写,

hshTable[3] = "three";

上述语句将在哈希表中创建一个键值对(3,“三”)。

向哈希表集合添加项的编程示例

以下程序演示了如何使用 Add() 方法构建不同元素的哈希表。

示例 1

using System;
using System.Collections;
class Program {
   static void Main(string[] args) {
      Hashtable mixedHashTable = new Hashtable();
      //add method
      mixedHashTable.Add("msg", "Collection");
      mixedHashTable.Add("site", "HashTable");
      mixedHashTable.Add(1, 3.14);
      mixedHashTable.Add(2, null);

      //assign value to the key
      mixedHashTable[3] = "Tutorial";

      // Add method throws an exception if the key already exists in //hashtable
      try {
         mixedHashTable.Add(2, 750);
      } catch {
         Console.WriteLine("Hashtable already has an element with Key = '2'.");
      }
      Console.WriteLine("*********HashTable Elements********");
      // It will return elements as Key-Value Pair.
      foreach (DictionaryEntry elem in mixedHashTable) {
         Console.WriteLine("Key = {0}, Value = {1}", elem.Key, elem.Value);
      }
      Console.ReadLine();
   }
}

上面的程序首先使用默认构造函数创建一个哈希表对象。然后它使用 Add() 方法将不同的元素添加到哈希表中。我们还可以通过直接赋值来将元素添加到哈希表中。上面的程序将不同数据类型的键值对添加到哈希表中。然后使用迭代器,将哈希表的元素一一显示出来。

输出

上述示例的输出如下所示 -

Hashtable already has an element with Key = '2'.
*********HashTable Elements********
Key = 2, Value = 
Key = msg, Value = Collection
Key = 3, Value = Tutorial
Key = site, Value = HashTable
Key = 1, Value = 3.14

输出显示了我们添加到哈希表中的所有键值对。

我们再举一个向哈希表添加元素的例子。程序如下。

示例 2

using System;
using System.Collections;
class hTable {
   // Driver code
   public static void Main() {
      // Creating a Hashtable
      Hashtable strHashTable = new Hashtable();

      // Adding elements in Hashtable
      strHashTable.Add("4", "Even Number");
      strHashTable.Add("9", "Odd Number");
      strHashTable.Add("5", "Odd and Prime Number");
      strHashTable.Add("2", "Even and Prime Number");

      // Get a collection of the keys.
      ICollection c = strHashTable.Keys;

      // Displaying the hashtable contents
      Console.WriteLine("=========Contents of the Hashtable=========");
      foreach(string str in c)
         Console.WriteLine(str + ": " + strHashTable[str]);
   }
}

在此程序中,我们添加字符串类型的值。我们使用 Add() 方法添加值,然后检索哈希表中的键集合。然后,我们使用 foreach 循环遍历此键集合并显示每个键及其相应的值。

输出

生成的输出如下 -

=========Contents of the Hashtable=========
5: Odd and Prime Number
9: Odd Number
2: Even and Prime Number
4: Even Number

通过这种方式,我们可以使用 hashtable 类的 Add() 方法将项添加到 hashtable 集合中。

我们在本文中了解了如何将项目添加到哈希表集合中。在以后的文章中,我们将讨论更多关于 Hashtable 的操作。

以上是如何在 C# 中向哈希表集合添加项目的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:tutorialspoint。如有侵权,请联系admin@php.cn删除
C#.NET生态系统:框架,库和工具C#.NET生态系统:框架,库和工具Apr 24, 2025 am 12:02 AM

C#.NET生态系统提供了丰富的框架和库,帮助开发者高效构建应用。1.ASP.NETCore用于构建高性能Web应用,2.EntityFrameworkCore用于数据库操作。通过理解这些工具的使用和最佳实践,开发者可以提高应用的质量和性能。

将C#.NET应用程序部署到Azure/AWS:逐步指南将C#.NET应用程序部署到Azure/AWS:逐步指南Apr 23, 2025 am 12:06 AM

如何将C#.NET应用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。1.在Azure上,使用AzureAppService和AzurePipelines自动化部署。2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda实现部署和无服务器计算。

C#.NET:强大的编程语言简介C#.NET:强大的编程语言简介Apr 22, 2025 am 12:04 AM

C#和.NET的结合为开发者提供了强大的编程环境。1)C#支持多态性和异步编程,2).NET提供跨平台能力和并发处理机制,这使得它们在桌面、Web和移动应用开发中广泛应用。

.NET框架与C#:解码术语.NET框架与C#:解码术语Apr 21, 2025 am 12:05 AM

.NETFramework是一个软件框架,C#是一种编程语言。1..NETFramework提供库和服务,支持桌面、Web和移动应用开发。2.C#设计用于.NETFramework,支持现代编程功能。3..NETFramework通过CLR管理代码执行,C#代码编译成IL后由CLR运行。4.使用.NETFramework可快速开发应用,C#提供如LINQ的高级功能。5.常见错误包括类型转换和异步编程死锁,调试需用VisualStudio工具。

揭开c#.net的神秘面纱:初学者的概述揭开c#.net的神秘面纱:初学者的概述Apr 20, 2025 am 12:11 AM

C#是一种由微软开发的现代、面向对象的编程语言,.NET是微软提供的开发框架。C#结合了C 的性能和Java的简洁性,适用于构建各种应用程序。.NET框架支持多种语言,提供垃圾回收机制,简化内存管理。

C#和.NET运行时:它们如何一起工作C#和.NET运行时:它们如何一起工作Apr 19, 2025 am 12:04 AM

C#和.NET运行时紧密合作,赋予开发者高效、强大且跨平台的开发能力。1)C#是一种类型安全且面向对象的编程语言,旨在与.NET框架无缝集成。2).NET运行时管理C#代码的执行,提供垃圾回收、类型安全等服务,确保高效和跨平台运行。

C#.NET开发:入门的初学者指南C#.NET开发:入门的初学者指南Apr 18, 2025 am 12:17 AM

要开始C#.NET开发,你需要:1.了解C#的基础知识和.NET框架的核心概念;2.掌握变量、数据类型、控制结构、函数和类的基本概念;3.学习C#的高级特性,如LINQ和异步编程;4.熟悉常见错误的调试技巧和性能优化方法。通过这些步骤,你可以逐步深入C#.NET的世界,并编写高效的应用程序。

c#和.net:了解两者之间的关系c#和.net:了解两者之间的关系Apr 17, 2025 am 12:07 AM

C#和.NET的关系是密不可分的,但它们不是一回事。C#是一门编程语言,而.NET是一个开发平台。C#用于编写代码,编译成.NET的中间语言(IL),由.NET运行时(CLR)执行。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境