C#基础入门 九

C#基础入门 九

集合

  • 对于很多应用程序,需要创建和管理相关对象组,有两种方式可以将对象分组,一是创建对象数组,如
object[] obj=new object[3]{1,2.33,"string"};
foreach(object o in obj)
{
	Console.WriteLine(o.Tostring());
	//output:1 2.33 string
}
  • 但是这样实现有一个缺点,数组的初始化必须要固定数量,即数组的长度一定是常量。所以需要集合。

  • 创建和管理相关对象组的第二种方式就是创建对象集合。集合提供一种灵活的处理方式,与数组不同,处理的对象组可根据程序更改的需要动态的增长和收缩,对于某些集合,您可以为放入该集合的任何对象分配一个“键”,以便使用该键快速检索对象。

  • 集合是类,因此必须声明新集合后,才能向该集合中添加元素。

  • 集合分为两种类型:非泛型集合和泛型集合

    • 使用非泛型集合需要引入:System.Collections命名空间
    • 使用泛型集合需要引入:System.Collections.Generic命名空间
  • System.Collections命名空间下的集合类

  • System.Collections.Generic命名空间下的集合类(图15)

Dictionary

  • Dictionary<TKey,TValue>称为字典类,表示键和值的集合,其中TKey表示字典中的类型,TValue表示字典中的值类型,Dictionary类实现了ICollection、IEnumerable、IDictionary接口,定义如下:Dictionary<string,int> dic =new Dictionary<string,int>();

  • Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) ,键必须是唯一的,而值不需要唯一的 ,键和值都可以是任何类型(比如:string, int, 自定义类型,等等) ;通过一个键读取一个值的时间是接近O(1) ,键值对之间的偏序可以不定义。

  • Dictionary类成员介绍:(图16)

  • Dictionary具体用法

public static void Main(string[] args)
        {
            Dictionary<string, int> dic = new Dictionary<string, int>();
            dic.Add("zxh",21);
            Dictionary<string, string> dic1 = new Dictionary<string, string>();
            dic1.Add("张三", "李四");
            int n;
            bool b=dic.TryGetValue("zxh", out n);
            Console.WriteLine(n);
            // bool b1 = dic.Remove("zxh");
            // Console.WriteLine(b1);
            //遍历key
            foreach (string key in dic.Keys)
            {
                Console.WriteLine("Key = {0}", key);
            }
            //遍历value
            foreach (int value in dic.Values)
            {
                Console.WriteLine("value = {0}", value);
            }
            //遍历字典
            foreach (KeyValuePair<string, int> kvp in dic)
            {
                Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
            }
        }
  • 运行如下图所示(图17)
posted @ 2018-02-16 14:54  20145218  阅读(89)  评论(0编辑  收藏