将一个哈希表中的项目替换为另一个哈希表中的 C# 程序

将一个哈希表中的项目替换为另一个哈希表中的 c# 程序

C# 中的哈希表集合是基于键的哈希码组织的键值对的非泛型集合。键用于访问哈希表集合中的元素。散列可以帮助我们有效地检索数据并消除对昂贵的数据搜索技术的需要。散列技术使用密钥本身来定位数据。该哈希表键是不可变的,并且哈希表中不允许出现重复的条目。

Hashtable类定义在System.Collections命名空间中,为C#中的哈希表集合提供了基类库。这个Hashtable类用于创建一个使用哈希表进行存储的键值对集合。通过计算键的哈希码并将其存储在另一个篮子中,优化了对特定键的查找。当我们从哈希表中访问值时,它会将哈希码与指定的键进行匹配。

在本教程中,我们将讨论一种用另一个哈希表中的项或元素替换哈希表中的项或元素的方法。

如何用另一个Hashtable替换一个Hashtable中的项目?

上面讨论的Hashtable类提供了用于创建Hashtable对象的构造函数和用于添加、删除元素以及检查元素、键或值是否存在于hashtable中的方法。它还提供了用于检查hashtable是否为空、计算hashtable中元素数量等属性。

但它不允许我们的方法从另一个哈希表中替换整个哈希表中的项。我们可以通过替换值来替换单个项。

要用另一个哈希表的内容替换整个哈希表的内容,通常我们会遍历整个第二个哈希表,并将第一个哈希表的内容替换为第二个哈希表的内容。

我们将使用下面所示的方法。

foreach (DictionaryEntry item in secondHashtable) {   firstHashtable[item.Key] = item.Value;   Console.WriteLine("{0} ({1}) ", item.Key, item.Value);}

首先,我们遍历第二个哈希表,然后用第二个哈希表的每个键值对替换第一个哈希表的键值对。

示例

实现这种方法的整个程序如下所示。

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");      Console.WriteLine("Contents of indianNumberSystem hashtable:");      foreach(DictionaryEntry ele1 in indianNumberSystem){         Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value);      }      Hashtable langCodes = new Hashtable();      langCodes.Add("C++","CPlusPlus");      langCodes.Add("C#","CSharp");      langCodes.Add("Java","Java");      langCodes.Add("PL","Perl");      Console.WriteLine("Contents of langCodes Hashtable:");      foreach(DictionaryEntry ele1 in langCodes){         Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value);      }      Console.WriteLine("After Replacing with langCodes, indianNumberSystem: ");      foreach (DictionaryEntry item in langCodes) {         indianNumberSystem[item.Key] = item.Value;         Console.WriteLine("{0} ({1}) ", item.Key, item.Value);      }   }}

这里我们有两个哈希表,indianNumberSystem和langCodes。我们用值填充两个哈希表,然后显示它们的内容。然后我们遍历langCodes哈希表,并将indianNumberSystem哈希表的每个元素替换为langCodes哈希表的元素。

此程序的输出如下所示。

输出

Contents of indianNumberSystem hashtable:1000 (Thousand) 10 (Tens) 100 (Hundred) 1 (Ones) Contents of langCodes Hashtable:Java (Java) C# (CSharp) PL (Perl) C++ (CPlusPlus) After Replacing with langCodes, indianNumberSystem: Java (Java) C# (CSharp) PL (Perl) C++ (CPlusPlus) 

从输出中我们可以看到,替换后indianNumberSystem的内容被替换为langCodes的内容。

示例

现在让我们看看下一个示例。

在这个例子中,我们将有两个哈希表:indianNumberSystem 和 numSys。这里我们不填充哈希表 indianNumberSystem。我们只是创建一个对象。 numSys 哈希表使用 Add 方法添加了以下值。

1

一个

10

100

一百

1000

这个例子的完整程序如下所示。

using System;using System. Collections;class MyHashTable {   // Main Method   static public void Main() {      // Create hashtable using the default constructor      Hashtable indianNumberSystem = new Hashtable();      Hashtable numSys = new Hashtable();      numSys.Add(1,"Ones");      numSys.Add(10,"Tens");      numSys.Add(100,"Hundred");      numSys.Add(1000,"Thousand");      Console.WriteLine("Contents of numSys Hashtable:");         foreach(DictionaryEntry ele1 in numSys){         Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value);      }      Console.WriteLine("After Replacing with numSys, indianNumberSystem: ");      foreach (DictionaryEntry item in numSys) {         indianNumberSystem[item.Key] = item.Value;         Console.WriteLine("{0} ({1}) ", item.Key, item.Value);      }   }}

这里我们使用与第一个程序相同的方法,唯一的区别是第一个哈希表是空的。然后我们直接将第二个哈希表的项替换或移动到第一个哈希表中。

输出

The output of this program is given below.

Contents of numSys Hashtable:1000 (Thousand)10 (Tens)100 (Hundred)1 (Ones)After Replacing with numSys, indianNumberSystem:1000 (Thousand)10 (Tens)100 (Hundred)1 (Ones)

正如程序的输出所示,numSys 表的内容现在是 indianNumberSystem 的内容。

因此,通过使用简单的循环并遍历哈希表,我们可以用另一个哈希表替换其中的项目。

以上就是将一个哈希表中的项目替换为另一个哈希表中的 C# 程序的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:49:08
下一篇 2025年12月16日 11:54:29

相关推荐

  • 如何使用 C# 获取人类可读的文件大小(以字节缩写为单位)?

    要获取目录,C# 提供了 Directory.GetDirectories 方法 Directory.GetDirectories 返回指定目录中与指定搜索模式匹配的子目录的名称(包括其路径),并可选择搜索子目录 为了获取文件,C# 提供了 Directory.GetFiles 方法 Directo…

    2025年12月17日
    000
  • C# 中的后台工作者类

    顾名思义,Background Worker 类允许您设置一个在后台持续运行的线程,并在需要时与主线程进行通信。 BackgroundWorker在 Windows 窗体中实现线程。密集型任务需要在另一个线程上完成,这样 UI 才不会冻结。任务完成后有必要发布消息并更新用户界面。 Backgroun…

    2025年12月17日
    000
  • 在 C# 中声明 const 数组

    在C#中,使用readonly来声明一个const数组。 public static readonly string[] a = { “Car”, “Motorbike”, “Cab” }; 在readonly中,与const不同的是,您也可以在运行时设置值。 实现上述内容的另一种替代方法是 − p…

    2025年12月17日
    000
  • 如何重载 C# 中的运算符?

    [] 运算符被称为索引器。 索引器允许对对象进行索引,例如数组。当您为一个类定义一个索引器时,该类的行为类似于一个虚拟数组。然后,您可以使用数组访问运算符([ ])访问该类的实例。 索引器可以被重载。索引器也可以声明多个参数,并且每个参数可以是不同的类型。索引不一定必须是整数。 示例1 static…

    2025年12月17日
    000
  • C# 中的静态构造函数是什么?

    静态构造函数是使用 static 修饰符声明的构造函数。它是类中执行的第一个代码块。这样,静态构造函数在类的生命周期中只执行一次。 以下是 C# 中静态构造函数的示例 – 示例 using System;using System.Collections.Generic;using Sys…

    2025年12月17日
    000
  • C# 中的 Console.TreatControlCAsInput 属性及示例

    在C#中,Console.TreatControlCAsInput属性是Console类的一个关键组成部分,它允许开发人员以更灵活的方式处理输入。本文将深入探讨Console.TreatControlCAsInput属性,帮助您了解其目的、用法,并提供实际示例。 了解 Console.TreatCo…

    2025年12月17日
    000
  • C# 中给定字符串中的单词反转

    假设以下是字符串 – Welcome 翻转字符串后,单词应该像 − 这样可见。 emocleW 使用reverse()方法并尝试以下代码来反转字符串中的单词 – 示例 using System;using System.Linq;class Demo { static voi…

    2025年12月17日
    000
  • C# 中的日志函数

    使用C#,您可以轻松地使用对数。它具有以下用于对数和以10为底的对数的方法。 序号 方法和描述 1Log(Double) 返回指定数字的自然(以e为底)对数。 2Log(Double, Double) 返回指定数字在指定底数下的对数。 3Log10(Double) 返回指定数字的以10为底的对数。 …

    2025年12月17日
    000
  • C# 中的对象池是什么?

    对象池是一种软件构造,旨在优化有限资源的使用。它有可供使用的对象。 池中的对象可以重复使用。对象池有两种形式: 激活对象时,将其从池中拉出。停用时,将对象添加到对象池中。 通过应用 ObjectPoolingAttribute 属性来配置对象池。 这适用于从 System.EnterpriseSer…

    2025年12月17日
    000
  • C# 中的静态类是什么?

    C# 静态类无法实例化,只能有静态成员。 C# 中的静态类是密封的,不能包含实例构造函数。 以下是包含静态类和静态成员的示例 – 示例 using System;public static class Demo { public static float PI = 3.14f; publ…

    2025年12月17日
    000
  • 如何在 C# 中创建 5 元组或五元组?

    Tuple 类表示一个 5 元组,称为五元组。元组是一种具有元素序列的数据结构。 它有五个属性 – Item1 − 获取当前 Tuple 对象的第一个组件的值。 Item2 − 获取值当前 Tuple 对象的第二个组件。 Item3 − 获取当前 Tuple 对象的第三个组件。 Item…

    2025年12月17日
    000
  • SQL Server 数据类型的 C# 等效项是什么?

    下表显示了 SQL Server 数据类型的 C# 等效项 – SQL Server 数据类型 等效的 C# 数据类型 varbinaryByte[]二进制字节[]图像无varchar无char无nvarchar字符串,Char[]nchar字符串,Char[]文本无ntext无行版本字…

    2025年12月17日
    000
  • 如何在 C# 中将元组初始化为空元组?

    将元组初始化为空元组 – Tuple myTuple; 如果您想检查元组中的值,即它是否为 null – 示例 using System;namespace Demo { class Program { static void Main(string[] args) { Tu…

    2025年12月17日
    000
  • C# 中 IEnumerable 和 IQueryable 有什么区别?

    IEnumerable 存在于 System.Collections 命名空间中。IQueryable 存在于 System 中。 Linq 命名空间。IEnumerable 和 IQueryable 都是正向集合。IEnumerable 不支持延迟加载IQueryable 支持延迟加载从数据库查询…

    2025年12月17日
    000
  • 如何处理中间件 C# Asp.net Core 中的错误?

    创建一个名为 CustomExceptionMiddleware 的新文件夹和一个类ExceptionMiddleware.cs 位于其中。 我们需要做的第一件事是注册 IloggerManager 服务并通过依赖注入实现RequestDelegate。 RequestDeleagate类型的_ne…

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

    假设我们的字符串是 – string str =”9999″; 现在,使用 Int32.Parse() 将字符串转换为整数 – int n = Int32.Parse(str); 现在显示整数值,如以下代码所示 – 示例 using System;class De…

    2025年12月17日
    000
  • C# 程序的结构和成员

    结构是一种值类型数据类型。它可以帮助您使单个变量保存各种数据类型的相关数据。 struct 关键字用于创建结构体。 要定义结构体,必须使用 struct 语句。 struct 语句定义了一种新的数据类型,为您的程序提供了多个成员。 例如,您可以通过以下方式声明 Book 结构。以下是成员 &#821…

    2025年12月17日
    000
  • C# 中的异步和等待关键字

    The async and await keyword is used in C# for asynchronous programming. An application with a GUI, check the content of the queue and if an unprocesse…

    2025年12月17日
    000
  • 如何在 C# 中使用 linq 扩展方法执行左外连接?

    使用INNER JOIN时,结果集中仅包含匹配的元素。不匹配的元素将从结果集中排除。 使用LEFT OUTER JOIN时,所有匹配元素 + 左侧集合中的所有不匹配元素都将包含在结果集中. 让我们通过一个示例来了解左外连接的实现。考虑以下 Department 和 Employee 类。请注意,员工…

    2025年12月17日
    000
  • 如何使用 C# 打印从 1 到 1000 的所有阿姆斯特朗数字?

    To display Armstrong numbers from 1 to 100, firstly use a while loop. Example while (val <= 1000) {} Now inside the while loop, set conditions for …

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信