C 泛型List用法

2021-09-28 20:49:38 字數 4729 閱讀 4199

一:.c#泛型list<>用法

1.作用:用於解決一系列類似的問題。

二、list的方法和屬性 方法或屬性 作用

capacity 用於獲取或設定list可容納元素的數量。當數量超過容量時,這個值會自動增長。您可以設定這個值以減少容量,也可以呼叫trin()方法來減少容量以適合實際的元素數目。

count 屬性,用於獲取陣列中當前元素數量

item( ) 通過指定索引獲取或設定元素。對於list類來說,它是乙個索引器。

add( ) 在list中新增乙個物件的公有方法

addrange( ) 公有方法,在list尾部新增實現了icollection介面的多個元素

binarysearch( ) 過載的公有方法,用於在排序的list內使用二分查詢來定位指定元素.

clear( ) 在list內移除所有元素

contains( ) 測試乙個元素是否在list內

copyto( ) 過載的公有方法,把乙個list拷貝到一維陣列內

exists( ) 測試乙個元素是否在list內

find( ) 查詢並返回list內的出現的第乙個匹配元素

findall( ) 查詢並返回list內的所有匹配元素

getenumerator( ) 過載的公有方法,返回乙個用於迭代list的列舉器

getrange( ) 拷貝指定範圍的元素到新的list內

indexof( ) 過載的公有方法,查詢並返回每乙個匹配元素的索引

insert( ) 在list內插入乙個元素

insertrange( ) 在list內插入一組元素

lastindexof( ) 過載的公有方法,,查詢並返回最後乙個匹配元素的索引

remove( ) 移除與指定元素匹配的第乙個元素

removeat( ) 移除指定索引的元素

removerange( ) 移除指定範圍的元素

reverse( ) 反轉list內元素的順序

sort( ) 對list內的元素進行排序

toarray( ) 把list內的元素拷貝到乙個新的陣列內

trimtosize( ) 將容量設定為list中元素的實際數目

三、list的用法

1、list的基礎、常用方法:

(1)、宣告:

①、list mlist = new list();

t為列表中元素型別,現在以string型別作為例子

list mlist = new list();

②、list testlist =new list (ienumerable collection);

以乙個集合作為引數建立list:

string temarr = ;

list testlist = new list(temarr);

(2)、新增元素:

①、 新增乙個元素

語法: list. add(t item)

list mlist = new list();

mlist.add(「john」);

②、 新增一組元素

語法: list. addrange(ienumerable collection)

list mlist = new list();

string temarr = ;

mlist.addrange(temarr);

③、在index位置新增乙個元素

語法: insert(int index, t item);

list mlist = new list();

mlist.insert(1, 「hei」);

④、遍歷list中元素

語法:foreach (t element in mlist) //t的型別與mlist宣告時一樣

例:list mlist = new list();

…//省略部分**

foreach (string s in mlist)

複製**

(3)、刪除元素:

①、刪除乙個值

語法:list. remove(t item)

mlist.remove(「hunter」);

②、 刪除下標為index的元素

語法:list. removeat(int index);

mlist.removeat(0);

③、 從下標index開始,刪除count個元素

語法:list. removerange(int index, int count);

mlist.removerange(3, 2);

(4)、判斷某個元素是否在該list中:

語法:list. contains(t item) 返回值為:true/false

if (mlist.contains(「hunter」))

else

(5)、給list裡面元素排序:

語法: list. sort () 預設是元素第乙個字母按公升序

mlist.sort();

(6)、給list裡面元素順序反**

語法: list. reverse () 可以與list. sort ()配合使用,達到想要的效果

mlist. reverse();

(7)、list清空:

語法:list. clear ()

mlist.clear();

(8)、獲得list中元素數目:

語法: list. count () 返回int值

int count = mlist.count();

console.writeline("the num of elements in the list: " +count);

2、list的高階、強大方法:

(1)、list.findall方法:檢索與指定謂詞所定義的條件相匹配的所有元素

語法:public list findall(predicate match);

list sublist = mlist.findall(listfind); //委託給listfind函式

foreach (string s in sublist)

這時sublist儲存的就是所有長度大於3的元素。

(2)、list.find 方法:搜尋與指定謂詞所定義的條件相匹配的元素,並返回整個 list 中的第乙個匹配元素。

語法:public t find(predicate match);

predicate是對方法的委託,如果傳遞給它的物件與委託中定義的條件匹配,則該方法返回 true。當前 list 的元素被逐個傳遞給predicate委託,並在 list 中向前移動,從第乙個元素開始,到最後乙個元素結束。當找到匹配項時處理即停止。

predicate 可以委託給乙個函式或者乙個拉姆達表示式:

委託給拉姆達表示式:

string listfind = mlist.find(name => //name是變數,代表的是mlist中元素,自己設定

return false;

});console.writeline(listfind); //輸出是hunter

委託給乙個函式:

string listfind1 = mlist.find(listfind); //委託給listfind函式

console.writeline(listfind); //輸出是hunter

//listfind函式

public bool listfind(string name)

return false;

}這兩種方法的結果是一樣的。

(3)、list.findlast 方法:搜尋與指定謂詞所定義的條件相匹配的元素,並返回整個 list 中的最後乙個匹配元素。

語法:public t findlast(predicate match);

用法與list.find相同。

(4)、list.trueforall方法: 確定是否 list 中的每個元素都與指定的謂詞所定義的條件相匹配。

語法:public bool trueforall(predicate match);

委託給拉姆達表示式:

bool flag = mlist.trueforall(name =>

else

});console.writeline("true for all: "+flag); //flag值為

委託給乙個函式,這裡用到上面的listfind函式:

bool flag = mlist.trueforall(listfind);    //委託給listfind函式

console.writeline("true for all: "+flag); //flag值為false

這兩種方法的結果是一樣的。

(5)list.take(n)方法: 獲得前n行 返回值為ienumetable,t的型別與list的型別一樣

ienumerable takelist= mlist.take(5);

foreach (string s in takelist)

這時takelist存放的元素就是mlist中的前5個。

(6)、list.where方法:檢索與指定謂詞所定義的條件相匹配的所有元素。跟list.findall方法類似。

ienumerable wherelist = mlist.where(name =>

else

});foreach (string s in sublist)

else

});foreach (string s in mlist)

這時mlist儲存的就是移除長度大於3之後的元素。

C 泛型List的用法

一 list命名空間 system.collections.generic 程式集 mscorlib 二 list描述 1 表示可通過索引訪問的物件的強型別列表 提供用於對列表進行搜尋 排序和操作的方法。2 是arraylist類的泛型等效類。3 可以使用乙個整數索引訪問此集合中的元素 索引從 零 ...

C 泛型 使用泛型List

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

C 泛型 使用泛型List

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