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
        }
    }
}
相关推荐
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹3 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁3 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
kybs19913 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超3 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int3 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读3 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json