C 常用泛型集合

2021-08-15 08:16:20 字數 1850 閱讀 8237

之前已經整理了泛型和集合的資料,今天來刷一下兩個c#提供的常用泛型集合——list<>和dictionary<>。

使用list<>泛型集合,需要引入system.collections.generic(命名空間)

list<>是arraylist的泛型等效類,即list<>物件的方法跟arraylist一樣,只不過它包含了泛型。

假設我們有乙個學生類,我們希望集合只能夠存放學生這種元素,就可以這樣。

liststus = new list();

student stu = new student("小紅","10000");

stus.add(stu);

這樣一來,一旦我們新增了其他型別的資料,在編譯器就會出錯。

stus.add(1);    //編譯期錯誤
屬性主要有兩個:

count           //list中包含的個數

item[int32] //獲取或設定指定索引處的元素

主要的方法:

add(t)          //將物件新增到list末尾

addrange() //將集合的元素新增到list末尾

asreadonly() //返回當前集合的唯讀包裝器

binarysearch(t) //在整個已排序的 list中搜尋元素,並返回下標

clear() //從 list中移除所有元素

contains(t) //確定某元素是否在 list中

indexof(t) //返回集合中第乙個匹配該元素的位置

insert(int32, t) //在指定位置,插入某個元素

lastindexof(t) //返回集合中最後乙個匹配該元素的位置

remove(t) //刪除第乙個匹配的元素

sort() //進行正序排序

reverse() //將整個 list中元素的順序反轉

dictionary與hashtable(雜湊表)是等效的,只不過加了泛型,稱為泛型雜湊表(泛型字典)。

使用dictionary同樣需要引入system.collections.generic

dictionarystus = new dictionary();

student stu = new student();

stus.add(stu)

//查詢某個key相對應的元素

stus.containskey(1);

//遍歷dictionary中所有的元素

foreach(keyvaluepairkv in stus)

------",kv.key);

kv.value.show();

}

重要的屬性:

count       // 鍵/值對的數目

item[tkey] //獲取或設定與指定的鍵關聯的值

重要的方法:

add(tkey, tvalue)       //將指定的鍵和值新增到字典中

clear() //清空整個泛型集合

containskey(tkey) //確定是否包含指定鍵

containsvalue(tvalue) //確定是否包含特定值

remove(tkey) //將帶有指定鍵的值從泛型集合中移除

2018/1/25 14:59:40 @author:雲都小生

C 集合 泛型集合

非泛型集合的類和介面位於system.collections命名空間。泛型集合的類和介面位於system.collections.generic命名空間。普通集合 arraylist 值 有序不唯一 hashtable key 必須唯一 可為空 不能為null value 可重複 能為空和null ...

C 泛型 泛型集合Dictionary

在system.collections.generic命名空間中,與arraylist相對應的泛型集合是list,與hashtable相對應的泛型集合是dictionary,其儲存資料的方式與雜湊表相似,通過鍵 值來儲存元素,並具有泛型的全部特徵,編譯時檢查型別約束,讀取時無須型別轉換。本儲存的例子...

C 泛型集合

集合是oop中的乙個重要概念,c 中對集合的全面支援更是該語言的精華之一。為什麼要用泛型集合?在c 2.0之前,主要可以通過兩種方式實現集合 a.使用arraylist 直接將物件放入arraylist,操作直觀,但由於集合中的項是object型別,因此每次使用都必須進行繁瑣的型別轉換。b.使用自定...