Hashtable几种常用的遍历方法
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 = ,
Name = "Jacky",
Email = "Jacky@gmail.com"
}; var b = new Person
{
Age = ,
Name = "Ajay",
Email = "Ajay@gmail.com"
}; var c = new Person
{
Age = ,
Name = "Bill",
Email = "Bill@gmail.com"
}; var d = new Person
{
Age = ,
Name = "Gace",
Email = "Gace@gmail.com"
}; var e = new Person
{
Age = ,
Name = "Jim",
Email = "Jim@gmail.com"
};
var ht = new Hashtable
{
{ "", a },
{ "", b },
{ "", c },
{ "", d },
{ "", 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();
}
}
}
Hashtable几种常用的遍历方法的更多相关文章
- 干货:结合Scikit-learn介绍几种常用的特征选择方法
原文 http://dataunion.org/14072.html 主题 特征选择 scikit-learn 作者: Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非 ...
- 结合Scikit-learn介绍几种常用的特征选择方法
特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减 ...
- [转载]Scikit-learn介绍几种常用的特征选择方法
#### [转载]原文地址:http://dataunion.org/14072.html 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解 ...
- javascript数组常用的遍历方法
本篇文章给大家带来的内容是关于javascript数组常用的遍历方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 本文主要介绍数组常见遍历方法:forEach.m ...
- 浅谈6种JS数组遍历方法的区别
本篇文章给大家介绍一下6种JS数组遍历方法:for.foreach.for in.for of.. each. ().each的区别.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. ...
- 两种QMultiMap的遍历方法(最好使用只读遍历器)
留个爪,备查 QMultiMap<QString, QString>& remote_map = my_obj->m_MapVersion; // ccc 这里体现了引用的好 ...
- OC中几种集合的遍历方法(数组遍历,字典遍历,集合遍历)
// 先分别初始化数组.字典和集合,然后分别用for循环.NSEnumerator枚举器和forin循环这三个方法来实现遍历 NSArray *array = @[@"yinhao" ...
- VxWorks嵌入式系统几种常用的延时方法
1 taskDelay taskDelay(n)使调用该函数的任务延时n个tick(内核时钟周期).该任务在指定的时间内主动放弃CPU,除了taskDelay(0)专用 于任务调度(将CPU交 ...
- 用C#实现的几种常用数据校验方法整理(CRC校验;LRC校验;BCC校验;累加和校验)
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错 ...
随机推荐
- java 解析富文本处理 img 标签
很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题 1)怎样将富文本的图片的 src 获取出来? 2)后台上传的时候用的是相对路 ...
- SSM框架主要几个注解的位置
@Controller @Service @Repository @Component Controller (控制层) Service (业务层) daoImpl (实现层) 模糊注解 @Autow ...
- Jmeter学习系列----3 配置元件之计数器
在做测试时,会遇到一种需求:在大量数据的情况下,数据不能重复或者需要自增,基于这种形式,我们可以考虑使用计数器. 计数器(counter): 计数器配置允许用户配置起始点,最大值和增量. 计数器将从开 ...
- vue cli搭建项目
1.首先电脑要在安装node环境下才能运行 2.全局安装webpack:npm install webpack -g 3.安装vue脚手架: npm install vue-cli -g 4.新建文件 ...
- 《MySQL技术内幕》读书笔记
序章 MySQL的安装 源码编译安装 MySQL的配置 基础配置 mysqld程序:语言设置 mysqld程序:通信.网络.信息安全 mysqld程序:内存管理.优化.查询缓存区 mysqld程序:日 ...
- F#周报2019年第9期
新闻 对于F#,Visual Studio 2019 RC有哪些更新 Visual Studio 2019 RC现在已经发布 C#版本与工具的升级 如何移植桌面应用程序到.NET Core 3.0 对 ...
- Ubuntu16.04更新python3.5到python3.7
下载wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz 解压tar zxvf Python-3.7.1rc2.tgzcd ...
- Xcode 断点无用,也不打印输出
原来是在main.m里使用了ptrace进行反调试. ptrace是系统用来对运行中的进程进行调试和跟踪的工具,通过ptrace,可以对另一个进程实现调试跟踪.但是里面提供了一个非常有用的参数,就是P ...
- hibernate学习(初识)
hibernate是一个开源的对象关系映射框架(ORM).对JDBC进行了轻量级的封装.将对象和数据库表建立映射关系,hibernate框架使用在数据持久化层(DAO). ORM:对象关系映射(Obj ...
- DHCP服务器 出现的故障
系统版本:Windows Server 2008 R2 Standard 故障现象:近段时间,我们核心网络DHCP服务器,总是发现有掉线重起现象,大约每10分钟至30分钟不定时会重起. 故障代码:关键 ...