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
        }
    }
}
相关推荐
茯苓gao1 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
ihuyigui1 小时前
海外签收通知短信接口
android·java·开发语言·前端·数据库·后端
雪的季节1 小时前
Python基础5-18
开发语言·python
Lyndon-李大鹏3 小时前
QT-VS环境
开发语言·qt
微学AI3 小时前
内网穿透的应用-把飞牛NAS变成家庭录像中心:EasyNVR部署与远程回放实战
开发语言·php
峥嵘life4 小时前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
BerryS3N4 小时前
深度解析:从零构建生产级大模型 RAG(检索增强生成)系统全栈指南
开发语言·python·ai
今儿敲了吗4 小时前
Python——函数基础
开发语言·笔记·python
CHANG_THE_WORLD4 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法