C#中的集合类——HashTable
HashTable 被称为键值对集合,类似于字典,根据key可以找到value
键值对对象[键]=值;
键值对集合当中,键必须是唯一的,而值是可以重复的
1. HashTable的用法
//创建了一个键值对集合对象
Hashtable ht = new Hashtable();
ht.Add(, "张三");
ht.Add(, true);
ht.Add(, '男');
ht.Add(false, "错误的");
ht.Add(, "张三");
ht[] = "新来的";//这也是一种添加数据的方式
ht[] = "把张三干掉";
ht.Add("abc", "cba"); //abc----cba
if (!ht.ContainsKey("abc"))
{
//ht.Add("abc", "哈哈哈");
ht["abc"] = "哈哈哈";
}
else
{
Console.WriteLine("已经包含abc这个键!!!");
} // ht.Clear(); //移除集合中所有的元素
ht.Remove(); foreach (var item in ht.Keys)
{
Console.WriteLine("键是-----{0}==============值是{1}", item, ht[item]);
}
//在键值对集合中 是根据键去找值的
//Console.WriteLine(ht[1]);
//Console.WriteLine(ht[2]);
//Console.WriteLine(ht[3]);
//Console.WriteLine(ht[false]);
//Console.WriteLine("==================================");
//for (int i = 0; i < ht.Count; i++)
//{
// Console.WriteLine(ht[i]);
//}
2. foreach循环
当循环次数巨大的时候,foreach循环的效率远远高于for循环。
foreach( var item in collection ) { 循环体}
item : 集合中的每一项元素
collection :需要遍历的集合
var : 可以根据值,自动地推断出类型
var n = ;
var n2 = "张三";
var n3 = 3.14;
var n4 = 5000m;
var n5 = true;
var n6 = '男';
Console.WriteLine(n.GetType());
Console.WriteLine(n2.GetType());
Console.WriteLine(n3.GetType());
Console.WriteLine(n4.GetType());
Console.WriteLine(n5.GetType());
Console.WriteLine(n6.GetType());
Console.ReadKey();
输出:

既然var可以通吃以上的类型,为何在C#中它却不受欢迎?
因为在使用var这个关键字来定义变量的时候,必须在声明变量的时候为变量赋值,否则编译器将报错。
有时候,我们需要这样做。 string str; str = "1230";
这就是var做不到的地方。
3. 强类型语言 和 弱类型语言
c#是一门强类型语言:在代码当中,必须对每一个变量的类型有一个明确的定义
其他强类型语言: java、C++等
弱类型语言:lua、vb、javaScript等
C#中的集合类——HashTable的更多相关文章
- (转)C#中各种集合类比较
数组(Array)的不足(即:集合与数组的区别) 1. 数组是固定大小的,不能伸缩.虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是 ...
- c#中常用集合类和集合接口之集合类系列【转】
常用集合接口系列:http://www.cnblogs.com/fengxiaojiu/p/7997704.html 常用集合类系列:http://www.cnblogs.com/fengxiaoji ...
- JUC集合之 JUC中的集合类
Java集合包 在"Java 集合系列01之 总体框架"中,介绍java集合的架构.主体内容包括Collection集合和Map类:而Collection集合又可以划分为List( ...
- C#中各种集合类比较
数组(Array)的不足(即:集合与数组的区别) 1. 数组是固定大小的,不能伸缩.虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是 ...
- java中的集合类总结
在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现,我在使用和面试的时候频 频遇到这样的“抉择” . :)(主要还是面试的时候) 久而久 ...
- [转帖]C#中字典集合HashTable、Dictionary、ConcurrentDictionary三者区别
C#中字典集合HashTable.Dictionary.ConcurrentDictionary三者区别 https://blog.csdn.net/yinghuolsx/article/detail ...
- ConcurrentHashMap和 CopyOnWriteArrayList提供线程安全性和可伸缩性 以及 同步的集合类 Hashtable 和 Vector Collections.synchronizedMap 和 Collections.synchronizedList 区别缺点
ConcurrentHashMap和 CopyOnWriteArrayList提供线程安全性和可伸缩性 DougLea的 util.concurrent 包除了包含许多其他有用的并发构造块之外,还包含 ...
- Objective-C中的集合类
下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习. 在Obj ...
- java中vector与hashtable操作详解
众所周知,java中vector与hashtable是线程安全的,主要是java对两者的操作都加上了synchronized,也就是上锁了.因此 在vector与hashtable的操作是不会出现问题 ...
随机推荐
- 使用python的Flask实现一个RESTful API服务器端
使用python的Flask实现一个RESTful API服务器端 最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文 ...
- c#万能视频播放器(附代码)
原文:c#万能视频播放器(附代码) c#万能视频播放器 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的 ...
- sql点滴42—mysql中的时间转换
原文:sql点滴42-mysql中的时间转换 UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时 ...
- WEB浏览器与服务器通讯过程
以访问网页www.baidu.com为例,下面是使用Wireshark捕捉到的数据: 浏览器先发起一个TCP连接,然后发送GET报文给服务器,服务器之后返回一个Response报文. 从服务器端返回时 ...
- 1cocos2dx扩展UI控制,CCControlSlider,CCScale9Sprite(九妹图。),CCControlSwitch,CCControlButton
UI控件来自cocos2dx的扩展库.完好了UI方面的元素,使cocos2dx更加丰富多彩.使用扩展库需包括: #include "cocos-ext.h" USING_NS ...
- leetcode[61] Unique Paths
题目:给定一个m*n的矩阵,从头开始,只能往右边和下边走,一次走一格,知道走到最后一个(右下角)为止.总共有多少种走法. 典型的动态规划吧.其实从头走到尾部,和从尾部开始走到头是一样的次数.我们用一个 ...
- BitNami-Redmine安装和VisualSVN-Server配合使用
原文:BitNami-Redmine安装和VisualSVN-Server配合使用 BitNami-Redmine安装和VisualSVN-Server配合使用 2011-05-04 10:48:22 ...
- 并行编程之PLINQ
并行编程之PLINQ 并行 LINQ (PLINQ) 是 LINQ 模式的并行实现.PLINQ 的主要用途是通过在多核计算机上以并行方式执行查询委托来加快 LINQ to Objects 查询的执行速 ...
- 关于HTTP头标
对于HTTP中的头字段,我表示真的好麻烦,特找来一段资料共享.希望能对大家有用. HTTP的头域包括通用头,请求头,响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成.域名是大小写 ...
- 在win下,如何用bat看程序运行的时间
上网搜了下用bat记录程序运行时间的方法,结果连google跳出的都是些什么ctime啥的- - 一点都不靠谱 傍晚问了几个大神,也大多都是ctime党,不过还好明哲造![跪跪跪] 在此mark 就比 ...