HashTable 被称为键值对集合,类似于字典,根据key可以找到value
键值对对象[键]=值;
键值对集合当中,键必须是唯一的,而值是可以重复的
1. HashTable的用法
//创建了一个键值对集合对象 Hashtable ht = new Hashtable(); ht.Add(1, "张三"); ht.Add(2, true); ht.Add(3, '男'); ht.Add(false, "错误的"); ht.Add(5, "张三"); ht[6] = "新来的";//这也是一种添加数据的方式 ht[1] = "把张三干掉"; ht.Add("abc", "cba"); //abc----cba if (!ht.ContainsKey("abc")) { //ht.Add("abc", "哈哈哈"); ht["abc"] = "哈哈哈"; } else { Console.WriteLine("已经包含abc这个键!!!"); } // ht.Clear(); //移除集合中所有的元素 ht.Remove(3); 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 = 15; 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等