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
        }
    }
}
相关推荐
nice_lcj5204 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
紧跟先前的步伐5 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
bksczm6 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
春涧草茶6 小时前
慢就是快16-1协程
开发语言·前端·python
Dovis(誓平步青云)6 小时前
启元 T1 Pro 人机相声搭档:语音-触摸双通道的启元机器人节奏引擎设计
开发语言·前端·javascript·microsoft·交互
做科研的周师兄6 小时前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言
.痞老板.8 小时前
java ee--计算机是如何工作的
java·开发语言·java-ee
奇树谦8 小时前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
青梅味猪大肠8 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
宝桥南山8 小时前
.NET 11 - 尝试一下Blazor中的新特性SupplyParameterFromTempData
microsoft·微软·c#·asp.net·.net·.netcore