C#常用集合類
collection)
ArrayList:
using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace SpaceName { class Program { static void Main(string[] args) { ArrayList array = newArrayList(); array.Add(100);//添加一個對象{100} foreach (int number in new int[6] { 9, 3, 7, 2, 4, 8 }) { array.Add(number);//添加多個對象array = {100, 9, 3, 7, 2, 4, 8} } int[] number2 = new int[2] { 11,12 }; array.AddRange(number2);//添加數組對象array = {100, 9, 3, 7, 2, 4, 8,11,12} array.Remove(3);//移除值為3的array = {100, 9, 7,2, 4, 8,11,12} array.RemoveAt(3);//移除第3個array = {100, 9, 7,4, 8,11,12} ArrayList array2 = new ArrayList(array.GetRange(1, 3));//新ArrayList只取舊ArrayList一部份 array2={ 9, 7, 4,} Console.WriteLine("遍曆方法一:"); foreach (int i in array)//不要強制轉換 { Console.WriteLine(i);//遍曆方法一 } Console.WriteLine("遍曆方法二:"); for (int i = 0; i != array2.Count; i++)//數組是length { int number = (int)array2[i];//一定要強制轉換 Console.WriteLine(number);//遍曆方法二 } } } }
Stack類和Queue類:
System.Collections.Stack stack=new System.Collections.Stack();stack.Push(1);stack.Push(2);stack.Push(3);stack.Push(4);stack.Push(5);while(stack.Count>0){System.Console.WriteLine(stack.Pop());}
System.Collections.Queue queue=new System.Collections.Queue();queue.Enqueue(1);queue.Enqueue(2);queue.Enqueue(3);queue.Enqueue(4);queue.Enqueue(5);while(queue.Count>0){System.Console.WriteLine(queue.Dequeue());}
Dictionary
Dictionary<string, string> myDic = new Dictionary<string,string>(); myDic.Add("aaa","111"); myDic.Add("bbb","222"); myDic.Add("ccc","333"); myDic.Add("ddd","444"); //如果添加已經存在的鍵,add方法會拋出異常 try { myDic.Add("ddd","ddd"); } catch (ArgumentException ex) { Console.WriteLine("此鍵已經存在:" + ex.Message); } //解決add()異常的方法是用ContainsKey()方法來判斷鍵是否存在 if (!myDic.ContainsKey("ddd")) { myDic.Add("ddd", "ddd"); } else { Console.WriteLine("此鍵已經存在:"); } //而使用索引器來負值時,如果建已經存在,就會修改已有的鍵的索引值,而不會拋出異常 myDic ["ddd"]="ddd"; myDic["eee"] = "555"; //使用索引器來取值時,如果鍵不存在就會引發異常 try { Console.WriteLine("不存在的鍵""fff""的索引值為:" +myDic["fff"]); } catch (KeyNotFoundException ex) { Console.WriteLine("沒有找到鍵引發異常:" + ex.Message); } //解決上面的異常的方法是使用ContarnsKey() 來判斷時候存在鍵,如果經常要取健值得化最好用 TryGetValue方法來擷取集合中的對應索引值 string value = ""; if (myDic.TryGetValue("fff",out value)) { Console.WriteLine("不存在的鍵""fff""的索引值為:" +value ); } else { Console.WriteLine("沒有找到對應鍵的索引值"); } //下面用foreach 來遍曆索引值對 //泛型結構體 用來儲存健值對 foreach (KeyValuePair<string,string> kvp in myDic) { Console.WriteLine("key={0},value={1}", kvp.Key, kvp.Value); } //擷取值得集合 foreach (string s in myDic.Values) { Console.WriteLine("value={0}", s); } //擷取值得另一種方式 Dictionary<string,string>.ValueCollection values = myDic.Values; foreach (string s in values) { Console.WriteLine("value={0}", s); }
HashTable:
List
List<string> names = new List<string>();names.Add("秦羽");names.Add("葉晨");names.Add("葉凡");//遍曆Listforeach (string name in names){Console.WriteLine(name);}//向List中插入元素names.Insert(2, "林東");//移除指定元素names.Remove("葉凡");
雖然知識比較基礎,但是仍然給了自己很大的啟發,學習是個過程,是不斷接觸,然後慢慢加深理解的,而不能夠一口吃成一個胖子.