【2017-12-09】c#基础-普通集合、泛型集合、哈希表集合、字典集合、队列集合、栈桥集合
数组:同一类型,固定长度
集合:不同类型,不固定长度
使用集合需引用集合命名空间: using System.Collections;
普通集合(弱类型集合):
定义:ArrayList arr = new ArrayList();
赋值:arr.Add("值/变量"); -object类型(所有类型的基础类型(基类))
取值:arr[索引]
插队:arr.Insert(索引,值/变量)
移除:arr.Remove(值);
arr.RemoveAt(索引);
--慎用,移除后后续索引都发生改变
反转:arr.Reverse(); - 全部反转
arr.Reverse(索引,个数); - 指定反转
清空:arr.Clear();
获取个数:arr.Count;
泛型集合(强类型集合):
定义:List<int> slist = new List<int>();
(各操作与普通集合大体相同)
哈希表集合(弱类型集合):
定义:Hashtable hs = new Hashtable();
赋值:hs.Add(键object类型,值object类型)-键值对
取值:hs.Add(键);
(有移除、清空等操作)
字典集合(强类型集合);
定义:Dictionary<int, string> dic = new Dictionary<int, string>();
赋值:hs.Add(键int类型,值string类型)
取值:hs.Add(键);
(有移除、清空等操作)
队列结合(弱类型集合):
定义:Queue q=new Queue();
赋值:q.Enqueue(object类型);
取值:q.Dequeue();-无参数,取第一个进去的
栈桥集合(弱类型集合):
定义:Stack st=new Stack();
赋值:st.Push(object类型);
取值:st.Pop();-无参数,取最后一个进去的
练习:
1.简单抽奖过程
1 List<string> names = new List<string>(); 2 names.Add("张三"); 3 names.Add("李四"); 4 names.Add("王五"); 5 names.Add("赵六"); 6 names.Add("孙七"); 7 List<string> jps = new List<string>(); 8 jps.Add("冰箱"); 9 jps.Add("彩电"); 10 jps.Add("洗衣机"); 11 jps.Add("电脑"); 12 jps.Add("电饭锅"); 13 14 Random r = new Random(); 15 for (int i = 0; i < 100; i++) 16 { 17 Console.Clear(); 18 string name =names[r.Next(0, names.Count)]; 19 string jp = jps[r.Next(0,jps.Count)]; 20 Console.Write("恭喜"+name+"获得了"+jp+"!"); 21 System.Threading.Thread.Sleep(100); 22 } 23 Console.Clear(); 24 Console.Write("恭喜张三获得了电脑!");