博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hashtable几种常用的遍历方法
阅读量:4677 次
发布时间:2019-06-09

本文共 3752 字,大约阅读时间需要 12 分钟。

Hashtable

在System.Collection是命名空间李Hashtable是程序员经常用到的类,它以快速检索著称,是研发人员开发当中不可缺少的利器。

Hashtable表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。Hashtable的键必须是唯一的,没有有效的排序,他进行的是内在的排序。

Hashtable有以下4中遍历方式

              1、以string对象为键值遍历哈希表。

              2、以自定义对象为键值遍历哈希表。

              3、以DictionaryEntry对象为键值遍历哈希表。

              4、通过继承IDictionaryEnumerator接口的对象来遍历哈希表。

using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{    class Program    {        class Person        {            private int age;            public int Age            {                get { return age; }                set { age = value; }            }            private string name;            public string Name            {                get { return name; }                set { name = value; }            }            private string email;            public string Email            {                get { return email; }                set { email = value; }            }        }        static void Main(string[] args)        {            var a = new Person            {                Age = 34,                Name = "Jacky",                Email = "Jacky@gmail.com"            };            var b = new Person            {                Age = 23,                Name = "Ajay",                Email = "Ajay@gmail.com"            };            var c = new Person            {                Age = 12,                Name = "Bill",                Email = "Bill@gmail.com"            };            var d = new Person            {                Age = 23,                Name = "Gace",                Email = "Gace@gmail.com"            };            var e = new Person            {                Age = 45,                Name = "Jim",                Email = "Jim@gmail.com"            };            var ht = new Hashtable            {                { "1", a },                { "2", b },                { "3", c },                { "4", d },                { "5", e }            };            Console.WriteLine("请输入你的查询的用户名:");            var strName = Console.ReadLine();            //第一种方法            foreach (string item in ht.Keys)            {                var p = (Person)ht[item];                if (strName == p.Name)                {                    Console.WriteLine("查询后的结果是:" + p.Name + "\t" + p.Email + "\t" + p.Age);                }            }            Console.WriteLine("华丽的分割线=========================================================");            //第二种方法            foreach (Person item in ht.Values)            {                if (item.Name == strName)                {                    Console.WriteLine("查询后的结果是:" + item.Name + "\t" + item.Email + "\t" + item.Age);                }            }            Console.WriteLine("华丽的分割线=========================================================");            //第三种方法            foreach (DictionaryEntry item in ht)            {                if (strName == ((Person)item.Value).Name)                {                    Console.WriteLine("查询后的结果是:" + ((Person)item.Value).Name + "\t" + ((Person)item.Value).Email + "\t" + ((Person)item.Value).Age);                }            }            Console.WriteLine("华丽的分割线=========================================================");            //第四种方法            IDictionaryEnumerator id = ht.GetEnumerator();            while (id.MoveNext())            {                Person p = (Person)ht[id.Key];                if (p.Name == strName)                {                    Console.WriteLine("查询后的结果是:" + p.Name + "\t" + p.Email + "\t" + p.Age);                }            }            Console.ReadKey();        }    }}

 

转载于:https://www.cnblogs.com/kudsu/p/7772521.html

你可能感兴趣的文章
POJ 1191 棋盘分割(区间DP)题解
查看>>
文件同步服务器,iis 集群 ,代码同步(一)
查看>>
JS之模板技术(aui / artTemplate)
查看>>
【Tomcat】Tomcat Connector的三种运行模式【bio、nio、apr】
查看>>
Mysql-2-数据库基础
查看>>
python把源代码打包成.exe文件
查看>>
再也不用担心网吧开黑队友听不清了!降噪解决方案了解一下?
查看>>
PhotoshopCS5中将单位修改成百分比
查看>>
赵雅智:js知识点汇总
查看>>
变形二叉树中节点的最大距离(树的最长路径)——非递归解法
查看>>
cocos2d-x 3.0rc1 编译cpp-testsproject
查看>>
《Java虚拟机原理图解》1.3、class文件里的訪问标志、类索引、父类索引、接口索引集合...
查看>>
三种常见的图像处理双三次插值算法
查看>>
开玩笑html5(五岁以下儿童)---绕地球月球,地球绕太阳运动(canvas实现,同样可以移动哦)...
查看>>
安卓启动相关以及架构设计相关
查看>>
第十四届华中科技大学程序设计竞赛--J Various Tree
查看>>
python面试题No2
查看>>
插入排序
查看>>
.Net Core + NGINX跳转登录时端口丢失
查看>>
C#实现对文件目录的实时监控
查看>>