11、C#根底整理(特殊集合和哈希表)。本站提示廣大學習愛好者:(11、C#根底整理(特殊集合和哈希表))文章只能為提供參考,不一定能成為您想要的結果。以下是11、C#根底整理(特殊集合和哈希表)正文
參考頁面:
http://www.yuanjiaocheng.net/CSharp/Csharp-enum.html
http://www.yuanjiaocheng.net/CSharp/Csharp-stringbuilder.html
http://www.yuanjiaocheng.net/CSharp/csharp-array.html
http://www.yuanjiaocheng.net/CSharp/Csharp-multi-dimensional-array.html
http://www.yuanjiaocheng.net/CSharp/Csharp-jagged-array.html
特殊集合:隊列、棧 一、棧Stack類:先進後出,沒有索引Stack ss = new Stack();
1、添加數據:push :將元素推入集合
ss.Push(3); ss.Push(5); ss.Push(7);
2、獲取數據:
(1)peek前往位於stack頂部的對象但不移除(獲取最後一個進入的元素的值)
Console.WriteLine(ss.Peek());//7
(2)pop將元素一個個彈出集合(讀取並移除)
Console.WriteLine(ss.Pop());//7 Console.WriteLine(ss.Pop());//5
3、其他操作
ToArray:前往數組類型,將棧中的元素轉換成集合,然後放到數組裡
object[] shuzu = (object[])ss.ToArray(); foreach(object a in shuzu) { Console.WriteLine(a); }二、隊列Queue類:先進先出
1、定義辦法:
Queue q = new Queue();
2、添加:
(1)Enqueue將元素放到隊列末尾
q.Enqueue(3); q.Enqueue(5); q.Enqueue(7);
(2)Peek:前往開端處的對象但不移除
Console.WriteLine("Peek:"+q.Peek());//3
3、獲取:Dequeue移除並前往位於隊列開端處的對象
Console.WriteLine("Dequeue:"+q.Dequeue());哈希表Hashtable類
以鍵值成對讀取數據,可以自己設置索引
Hashtable ht = new Hashtable(); ht.Add("a", "zhangsan");//一個恣意類型的key + 一個恣意類型的value值 ht.Add("b", "lisi"); ht.Add("c", "wangwu");
打印哈希表中元素個數的辦法:
ICollection htkeys = ht.Keys; Console.WriteLine(htkeys.Count);
讀取key值
//copyto---復制到一個數組中 string[] ss1 = new string[3]; htkeys.CopyTo(ss1,0);
讀取value值
ICollection htvalues = ht.Values; string[] ss2 = new string[3]; htvalues.CopyTo(ss2,0);
成對讀取:key和value都需求重新定義
IDictionaryEnumerator id = ht.GetEnumerator(); //object key1=id.Key;//獲取一個值 //object value1 = id.Value; //id.MoveNext();//往下移一個元素,前往布爾值,假如為false就不能再挪動了 while(id.MoveNext()) { object key2=id.Key; Console.WriteLine(key2.ToString()); object value2 = id.Value; Console.WriteLine(value2.ToString()); }
ht.Remove("b"); —— 依據鍵值移除該鍵