泛型集合List

2021-09-30 15:29:50 字數 2057 閱讀 4556

泛型是具有佔位符(型別引數)的類、結構、介面和方法,這些佔位符是類、結構、介面和方法所儲存或使用的乙個或多個型別的佔位符。

泛型集合類可以將型別引數用作它所儲存的物件的型別的佔位符;型別引數作為其字段的型別和其方法的引數型別出現。泛型方法可以將其型別引數用作其返回值的型別或者其形參的

型別之一。

list 是對應於 arraylist 的泛型類。

dictionary 是對應於 hashtable 的泛型類。

「泛型型別定義」是用作模板的類、結構或介面宣告,其中具有該類、結構或介面宣告可以包含或使用的型別的佔位符。

例如,ary 類可以包含兩種型別:鍵和值。因為它只是乙個模板,您不能建立作為泛型型別定義的類、結構或介面的例項。

「泛型型別引數」或稱「型別引數」是泛型型別或方法定義中的佔位符。dictionary 泛型型別具有兩個型別引數:tkey 和 tvalue,分別表示其鍵和值的型別。

「構造泛型型別」或稱「構造型別」是為泛型型別定義的泛型型別引數指定型別得到的結果。

「泛型型別引數」是替換泛型型別引數的任何型別。

一般術語「泛型型別」包括構造型別和泛型型別定義。

「約束」是加在泛型型別引數上的限制。例如,可以將型別引數限制為實現 icomparer 泛型介面的型別以確保可以對該型別的例項進行排序。還可以將型別引數限制為具有特定基類的型別、具有預設建構函式的型別或是引用型別或值型別。泛型型別的使用者不能替換不滿足這些約束的型別引數。

「泛型方法定義」是具有兩個引數列表的方法:乙個泛型型別引數列表和乙個形參列表。

許多泛型集合型別是非泛型型別的直接模擬。dictionary 是 hashtable 的泛型版本;它使用泛型結構 keyvaluepair 而不是 dictionaryentry 進行列舉。

//1.分揀奇數偶數的程式用泛型實現。(list)

/*string str = "2 4 7 9 6 8 5";

string nums = str.split(' ');

listlistodd = new list();

listlisteven = new list();

for (int i = 0; i < nums.length; i++)

else

}listodd.addrange(listeven);

//2.將int陣列中的奇數放到乙個新的int陣列中返回。

/*int numbers = ;

listlistodd = new list();

for (int i = 0; i < numbers.length; i++)

}int numodd = listodd.toarray();

for (int i = 0; i < numodd.length; i++)*/

//3.從整數的list中找最大值,不適用max方法。

//int numbers = ;

/*random random = new random();

listlist = new list();

for (int i = 0; i <10; i++)

int temp = list[0];

for (int n = 1; n < list.count; n++)

}console.writeline("max is:" + temp);

* /

//4.計算字串中每種字元出現的次數

/*string str = "welcome to china! this is a beautiful county, i think ou will like it.here is the great wall";

str = str.tolower();

dictionarydict1 = new dictionary();

//統計字元出現的次數

for (int i = 0; i < str.length; i++)

else}}

foreach (keyvaluepairkv in dict1)

,出現了次",kv.key,kv.value);

}*/

泛型集合List

泛型集合list泛型最重要的應用就是集合操作,使用泛型集合可以提高 重用性,型別安全和更佳的效能。list的用法和arraylist相似,list有更好的型別安全性,無須拆,裝箱。定義乙個list泛型集合的語法如下 list集合名 new list 在泛型定義中,泛型型別引數 是必須指定的,其中t是...

List泛型集合

陣列 定義後長度固定的。泛型集合可以改變。list字串集合,集合中多個字串。與陣列一樣,索引從0開始,對應每乙個字串。方法有。list.add 增加,list.removeat 根據索引刪除。list.insert 0,插入。list.addrange 陣列 list.sort 公升序,list.r...

List泛型集合總結(一)

為什麼要用泛型集合?在c 2.0之前,主要可以通過兩種方式實現集合 a.使用arraylist 直接將物件放入arraylist,操作直觀,但由於集合中的項是object型別,因此每次使用都必須進行繁瑣的型別轉換。b.使用自定義集合類 比較常見的做法是從collectionbase抽象類繼承乙個自定...