C#常用集合類型

https://msdn.microsoft.com/zh-cn/library/system.collections(v=vs.110).aspx

https://msdn.microsoft.com/zh-cn/library/system.collections.generic(v=vs.110).aspx

1.ArrayList類

ArrayList類主要用于對一個數(shù)組中的元素進行各種處理。在ArrayList中主要使用Add、Remove、RemoveAt、Insert四個方法對棧進行操作。

Add方法用于將對象添加到?ArrayList?的結(jié)尾處;

Remove方法用于從?ArrayList?中移除特定對象的第一個匹配項;

RemoveAt方法用于移除?ArrayList?的指定索引處的元素;

Insert方法用于將元素插入?ArrayList?的指定索引處。

2.Stack類

Stack(堆棧)類主要實現(xiàn)了一個LIFO(Last In First Out,后進先出)的機制。元素從堆棧的頂部插入(入棧操作),也從堆棧的頂部移除(出棧操作)。在Stack中主要使用Push,Pop,Peek三個方法對棧進行操作。

Push方法用于將對象插入Stack?的頂部;

Pop方法用于移除并返回位于?Stack?頂部的對象;

Peek方法用于返回位于?Stack頂部的對象但不將其移除。

3.Queue類

Queue(隊列)類主要實現(xiàn)了一個FIFO(First In First Out,先進先出)的機制。元素在隊列的尾部插入(入隊操作),并從隊列的頭部移出(出隊操作)。在Queue中主要使用Enqueue、Dequeue、Peek三個方法對隊進行操作。

Enqueue方法用于將對象添加到?Queue?的結(jié)尾處;

Dequeue方法移除并返回位于?Queue?開始處的對象;

Peek方法用于返回位于?Queue?開始處的對象但不將其移除。

4.Hashtable類

Hashtable(哈希表)是一種鍵/值對集合,這些鍵/值對根據(jù)鍵的哈希代碼進行組織。在一個Hashtable中插入一對Key/Value時,它自動將Key值映射到Value,并允許獲取與一個指定的Key相關(guān)聯(lián)的Value。在Hashtable中主要使用Add、Remove兩個方法對哈希表進行操作。

Add方法用于將帶有指定鍵和值的元素添加到 Hashtable 中;

Remove方法用于從?Hashtable?中移除帶有指定鍵的元素。

//實例化Hashtable類的對象

Hashtable?student = new?Hashtable?();

//向Hashtable中添加元素

student.Add("S1001",?"Tom");

student.Add("S1002",?"Jim");

student.Add("S1003",?"Lily");

student.Add("S1004",?"Lucy");

//遍歷Hashtable

foreach?(DictionaryEntry?item in?student)

{

string?id?= item .Key.ToString?();

string?name?= item .Value.ToString?();

Console.WriteLine("學生的ID:{0}???學生姓名:{1}",id,name);

}

//移除Hashtable中的元素

student.Remove("S1002");

說明:Hashtable不能包含重復的key。如果調(diào)用Add方法來添加一個keys數(shù)組中已有的key,就會拋出異常。為了避免這種情況,可以使用ContainsKey ? ? ? 方法來測試哈希表中是否包含一個特定的Key。

5.SortedList類

SortedList類也是鍵/值對的集合,但與哈希表不同的是這些鍵/值對是按鍵排序,并可以按照鍵和索引訪問。在SortedList中主要使用Add、Remove、RemoveAt三個方法對SortedList進行操作。

Add方法用于將帶有指定鍵和值的元素添加到 SortedList 中;

Remove方法用于從?SortedList?中移除帶有指定鍵的元素;

RemoveAt方法用于移除?SortedList?的指定索引處的元素。

//實例化SortedListTest類的對象

SortedList?student?=?new?SortedList();

//向SortedList中添加元素

student.Add("S1001",?"Tom");

student.Add("S1003",?"Jim");

student.Add("S1002",?"Lily");

student.Add("S1004",?"Lucy");

//遍歷SortedList

foreach?(DictionaryEntry?element?in?student)

{

string?id?=?element.Key.ToString();

string?name?=?element.Value.ToString();

Console.WriteLine("學生的ID:{0}???學生姓名:{1}",?id,?name);

}

//移除SortedList中key為“S1003”的元素

student.Remove("S1003");

//移除SortedList中索引為“0”的元素,即第一個元素

student.RemoveAt(0);

說明:同樣SortedList也不能包含重復的key。而且使用foreach語句遍歷SortedList對象時,會返回DictionaryEntry對象。該對象將根據(jù)Key屬性,以排序后的順序返回。

6.Dictionary類

varlist =newDictionary()

{

{"1",1},

{"2",2},

{"3",3}

};

list.Add("a", 1);

list.Add("b", 2);

list.Add("c", 3);

foreach(variteminlist)

{

Console.WriteLine(item.Key + item.Value);

}

//KeyValuePair

foreach(KeyValuePair kvinlist)

{

Console.WriteLine(kv.Key + kv.Value);

}

//通過鍵

foreach(stringkeyinlist.Keys)

{

Console.WriteLine(key + list[key]);

}

//直接取值

foreach(intvalinlist.Values)

{

Console.WriteLine(val);

}

//移除元素

foreach(stringkeyinnewList(list.Keys))

{

if(key =="a")

list.Remove(key);

if(key =="b")

list.Remove(key);

}

stringstr =String.Join(",",list.Values.Select(i => i.ToString()).ToArray());

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內(nèi)容

  • 9yue6 集合(Collection 一、集合的作用: 有兩種方式可以將對象分組: 1、創(chuàng)建對象數(shù)組 2、創(chuàng)建對...
    cGunsNRoses閱讀 2,261評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,737評論 18 399
  • 一、什么是Hashtable? Hashtable 類代表了一系列基于鍵的哈希代碼組織起來的鍵/值對。它使用鍵來訪...
    小明yz閱讀 2,629評論 0 3
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,515評論 0 3
  • 那么,一切都過去了 難道實情的滋味 真有預想的那么難咽? 聽,麻雀在你家村居的屋檐周圍 唧唧喳喳地,道著晚安 今天...
    梵高與魔豆閱讀 184評論 0 0