0

0

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

王林

王林

发布时间:2023-09-12 09:49:02

|

1186人浏览过

|

来源于tutorialspoint

转载

如何在 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 − 哈希表具有固定大小或只读。

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

在Android
在Android

本文档主要讲述的是在Android-Studio中导入Vitamio框架;介绍了如何将Vitamio框架以Module的形式添加到自己的项目中使用,这个方法也适合导入其他模块实现步骤。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载
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 的操作。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

306

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

232

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

437

2024.03.01

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

45

2025.12.04

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

209

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1468

2023.10.24

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号