非泛型集合

AeeayList

1、命名空间: 

 System.Collections.Generic(程序集:mscorlib)
2、描述:
  1)、表示可通过索引访问的对象的强类型列表;提供用于对列表进行搜索、排序和操作的方法。
  2)、是ArrayList类的泛型等效类。
  3)、可以使用一个整数索引访问此集合中的元素;索引从 零 开始。
  4)、可以接收null空引用。
  5)、允许重复元素
3、创建及初始化:
  List<string> myList = new List<string>();//初始Capacity为 零
  List<string> myList2 = new List<string>(30); //初始Capacity为 30
  List<string> myList3 = new List<string>(new string[] { "1", "a", "2", "b" });//初始Capacity 为 4,并且元素已被复制
4、Capacity与Count
  1)Capacity在需要调整大小之前可存储的元素数;Count实际存储的元素数。
  2)Capacity总是大于或者等于Count
  通过Reflector查看add()方法对Capacity和Count的影响:

5、遍历元素:
  foreach (string s in myList)
  {
      Console.WriteLine("\n值: {0}", s);
  }
6、ArrayList常用属性和方法:

  Add(Object value)将对象添加到ArrayList的结尾处。并且返回值 为int。

  Remove(Object value)将指定的元素删除,并且一次只删除一个。

  RemoveAt(int index)将指定元素下标的值删除。

  Insert(int index,Object Value)将指定的元素添加到指定的下标。

  Contains(Object Value)判断指定的元素是否存在集合中,布尔返回值。

  Clear()删除集合中的所有元素

 

 

  集合初始化器:就是更简单的方法对集合中的元素赋值。

  eg:

  ArrayList list = new ArrayList();

  {

   new Book(){BookName="越狱"}//每一项用逗号隔开,最后一项不用逗号

  ,new Book(){BookName="爱情"}

  ,new Book(){BookName="励志"}

  ...

  };

 

Hashtable

1.命名空间

System.Collections

2.名称

哈希表(Hashtable)

3.描述

用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;

value用于存储对应于key的值。

Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.

不能通过下标访问数据,双列集合是通过键访问值的。

 

4.Hashtable的常用属性和方法

Count   :获取键值对的数目

keys:键的集合

Values:值的集合

Add(Object key,Object Value):将指定的键和值的元素添加到集合中。

Remove(Object Key):移除带有指定键的元素

Clear():移除所有元素

 

5.遍历哈希表中的值

Hashtable只能用foreach遍历集合中的数据。

eg:

foreach(Object obj in ht.Values)

{

//遍历值

cw(se.Name);

}

或者

foreach(string key in ht.Keys)

{

//将键值对全部遍历出来

cw(ht[key]);

}

 

6 .对哈希表进行排序

  对哈希表按key值重新排列的做法:

ArrayList akeys=new ArrayList(ht.Keys); 
akeys.Sort(); //按字母顺序进行排序
foreach(string key in akeys)
{
   Console.WriteLine(key + ": " + ht[key]);  //排序后输出
}
posted @ 2018-04-03 19:18  之。  阅读(118)  评论(0编辑  收藏  举报