列表List和泛型

2021-08-13 15:28:12 字數 2399 閱讀 4418

1、建立乙個列表

listscorelist = new list();              第一種方式

var scorelist1 = new list();                   第二種方式,使用匿名類

list<>中加的為這個列表的型別

2、給建立的列表乙個初始值

var scorelist2 = new list() ;       裡面的初始值為 1  2  3

listscorelist2 = new list();

3、插入資料和訪問資料

scorelist.add(12);

console.writeline(scorelist[0]);

與陣列一樣都有索引,都是從 0 開始。

listintlist = new list(10);

建立了乙個初始容量為10的列表,當容量不夠時,每次都會按照原來容量的2倍來擴容

intlist.capacity = 100;

我們可以通過 capacity 獲取和設定容量

注意: 容量和列表中元素的區別,容量是列表中用於儲存資料的陣列的長度

列表的元素是我們新增進去需要管理的資料,通過count獲取

console.writeline("capacity:" + scorelist.capacity 

+ "count:" + scorelist.count);

輸出: capacity:4     count:1

因為當元素為 0 個,容量也為 0; 當元素為 1 個,容量為 4;

當元素為 5 個,容量為 8;   當元素為 9 個,容量為 16;

1、for迴圈,遍歷所有索引,通過索引訪問列表中的元素

for(int i = 0; i < list.count ; i++)

2、foreach遍歷

foreach(int i in list)

1、capacity 獲取容量大小

2、add() 方法新增元素

3、insert() 方法插入元素

scorelist.insert( 插入的索引位置, 要插入的元素的資料 );

注意:要插入的索引位置不能大於原有的元素的個數

4、[index] 訪問元素

5、count 屬性訪問元素個數

6、removeat() 方法移除指定位置的元素

scorelist.removeat( 要移除的索引位置 );

7、indexof() 方法取得乙個元素所在列表中的索引位置

int index = scorelist.indexof( 列表中某個元素的資料! );

注意:如果輸入的引數在列表中不存在,會返回 -1

8、lastindexof() 上面的方法是從前往後搜,這個是從後往前搜

注意:如果列表中有相同的元素資料: indexof()從前往後

lastindexof()從後往前

9、sort() 對列表中的元素進行從小到大的排序

1、什麼是泛型

通過引數化型別來實現在同乙份**上操作多種資料型別,利用"引數化型別"將型別

抽象化,從而實現靈活的復用

2、宣告與使用

class classa

public string getsum()

}var o1 = new classa(12, 34);

string s = o1.getsum();

var o2 = new classa("www.","classa.com");

string a = o2.getsum();

這樣這個類中定義的字段就能用各種不一樣的型別來定義了

3、泛型方法

就是定義乙個方法,這個方法的引數的型別可以是不確定的,可以當呼叫這個方法時

再確定方法和引數的型別

public static string getsum(t a,t b)

console.writeline(getsum(12,34));

console.writeline(getsum(12.3,12.4));

console.writeline(getsum("www.","vlasss"));

這樣這個方法的引數就可以使用不同型別來定義

注意:多個泛型

public static string getsum(t a,t b,a c)

console.writeline(getsum(12,34,4.5f));

方法與類都能使用多個泛型,如果只有乙個泛型呼叫方法時可以不宣告這是個什麼型別

如果有多個泛型,就要全都宣告型別

用什麼泛型宣告的字段,在使用中就使用什麼泛型定義的型別

例子: a c     就要用      float 型別,值要輸入  4.5f;

通過[index]這種形式訪問資料,就是索引器   

C 泛型 使用泛型List

一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...

C 泛型 使用泛型List

一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...

泛型集合List

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