C#中HashTable相关方法

C#中的哈希表(HashTable)是由一些列哈希代码组构起的键值对,用于提高访问元素的效率,可以使用键来访问值,键和值都属于Object类型的变量,它同样提供增删查改和多种遍历操作。

cs 复制代码
using System;
using System.Collections;

namespace lesson04
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable hashtable = new Hashtable();

            #region 增删查改
            //增加(不允许出现相同的键)
            hashtable.Add(1, "123");
            hashtable.Add(2, "456");
            hashtable.Add(3, "789");
            hashtable.Add("999", 45);
            //删除
            hashtable.Remove(999);
            //清空
            //hashtable.Clear();
            //查找(找不到返回null)
            Console.WriteLine(hashtable[3]);
            //查找键或值是否在哈希表中
            if (hashtable.Contains(2)) 
            {
                Console.WriteLine("存在键为2的键值对");
            }
            if (hashtable.ContainsKey(3)) 
            {
                Console.WriteLine("存在键为3的键值对");
            }
            if (hashtable.ContainsValue("123")) 
            {
                Console.WriteLine("存在键为123的键值对");
            }
            //修改(仅允许修改值内容)
            hashtable[0] = 100.5f;
            Console.WriteLine("********************");
            #region 遍历
            Console.WriteLine(hashtable.Count);
            //1,遍历所有键
            foreach (object item in hashtable.Keys)
            {
                Console.WriteLine("键 = " + item);
                Console.WriteLine("值 = " +hashtable[item]);//顺带遍历值
            }
            Console.WriteLine("********************");
            //2.遍历所有值
            foreach (object item in hashtable.Values)
            {
                Console.WriteLine("值 = " + item);
            }
            Console.WriteLine("********************");
            //3.同时遍历键值对
            foreach (DictionaryEntry item in hashtable)
            {
                Console.WriteLine("键 = " + item.Key + "值 = " + item.Value);
            }
            //4.迭代器遍历
            IDictionaryEnumerator myEnumerator = hashtable.GetEnumerator();
            bool flag = myEnumerator.MoveNext();
            while (flag) 
            {
                Console.WriteLine("键 = " + myEnumerator.Key + "值 = " + myEnumerator.Value);
                flag = myEnumerator.MoveNext();
            }
            #endregion
            #endregion
        }
    }
}
相关推荐
_Twink1e13 分钟前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen
公子小六17 分钟前
基于.NET的Windows窗体编程之WinForms滑块与上下控件
windows·microsoft·c#·.net·winforms
问天_观心25 分钟前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
阿里嘎多学长30 分钟前
2026-09-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
曹牧1 小时前
C#:文本文件读取
服务器·前端·c#
源代码•宸1 小时前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
2601_967338711 小时前
C#上位机开发零基础入门到精通全套视频
开发语言·c#
小白学大数据2 小时前
超简单:用 Python 让 Excel 飞起来:用 openpyxl 把重复报表整理交给脚本
开发语言·数据库·python·excel
旧梦95272 小时前
Java SortedMap 接口详解:从入门到实战
java·开发语言
莫陌尛.2 小时前
Java_this构造方法
java·开发语言