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的更多相关文章

  1. (转)C#中各种集合类比较

    数组(Array)的不足(即:集合与数组的区别) 1. 数组是固定大小的,不能伸缩.虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是 ...

  2. c#中常用集合类和集合接口之集合类系列【转】

    常用集合接口系列:http://www.cnblogs.com/fengxiaojiu/p/7997704.html 常用集合类系列:http://www.cnblogs.com/fengxiaoji ...

  3. JUC集合之 JUC中的集合类

    Java集合包 在"Java 集合系列01之 总体框架"中,介绍java集合的架构.主体内容包括Collection集合和Map类:而Collection集合又可以划分为List( ...

  4. C#中各种集合类比较

    数组(Array)的不足(即:集合与数组的区别) 1. 数组是固定大小的,不能伸缩.虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是 ...

  5. java中的集合类总结

    在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现,我在使用和面试的时候频 频遇到这样的“抉择” . :)(主要还是面试的时候) 久而久 ...

  6. [转帖]C#中字典集合HashTable、Dictionary、ConcurrentDictionary三者区别

    C#中字典集合HashTable.Dictionary.ConcurrentDictionary三者区别 https://blog.csdn.net/yinghuolsx/article/detail ...

  7. ConcurrentHashMap和 CopyOnWriteArrayList提供线程安全性和可伸缩性 以及 同步的集合类 Hashtable 和 Vector Collections.synchronizedMap 和 Collections.synchronizedList 区别缺点

    ConcurrentHashMap和 CopyOnWriteArrayList提供线程安全性和可伸缩性 DougLea的 util.concurrent 包除了包含许多其他有用的并发构造块之外,还包含 ...

  8. Objective-C中的集合类

    下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习. 在Obj ...

  9. java中vector与hashtable操作详解

    众所周知,java中vector与hashtable是线程安全的,主要是java对两者的操作都加上了synchronized,也就是上锁了.因此 在vector与hashtable的操作是不会出现问题 ...

随机推荐

  1. jquery+html三级联动下拉框及详情页面加载时的select初始化问题

    html写的三个下拉框,如下: <select name="ddlQYWZYJ" id="ddl_QYWZYJ" class="fieldsel ...

  2. PDFBox 介绍

    根据官网的介绍可知,PDFBox是一个用来处理PDF文档的开源的Java工具包.这个项目运行创建PDF文档.对已有文档进行操作并且能够从文档中提取内容.它也包含了几个命令行工具.还有一点很重要,它是开 ...

  3. uva 11181 - Probability|Given

    条件概率公式:P( A|B ) = P( AB ) / P( B ) 表示在事件B发生的前提,事件A发生的可能性: 问题的: 复位事件E:r个人买东西: 事件Ei:文章i个人买东西: 的要求是P( E ...

  4. leetcode[94] Unique Binary Search Trees

    给定n,那么从1,2,3...n总共可以构成多少种二叉查找数呢.例如给定3 Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \ ...

  5. css3中webkit-box的用法(平分父元素)

    display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分.目前box- ...

  6. asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记

    很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...

  7. DbUtility Ex

    扩展 DbUtility (1) 2014-05-22 21:48 by Ivony..., 234 阅读, 3 评论, 收藏, 编辑 本文原始路径: https://www.zybuluo.com/ ...

  8. 【转载】如何让Chrome浏览器允许本地环境支持Ajax

    转载自:http://www.bewxx.com/news/news_89.html 对于网站前端人员来说,我们在本地开发程序的时候如果用到Ajax的话,通常会使用Firefox来测试,因为Firef ...

  9. c++对象内存布局的理解

    我对c++对象内存布局的理解   引言 结合网上的一些资料,通过自己的一番摸索,得出了一点个人见解.现在写下来,希望与各位同学共同探讨,共同进步. 以下所有代码均是在VS2012下测试. 一个普通的基 ...

  10. Web API 2

    Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]   前言 本来一直参见于微软官网进行学习的, 官网网址http://www.asp.net/web-api.出于自己想锻炼一下学 ...