之前已經整理了泛型和集合的資料,今天來刷一下兩個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.使用自定...