1樓:匿名使用者
所屬名稱空間:system.collections.generic
public class list: ilist, icollection, ienumerable, ilist, icollection, ienumerable
list類是 arraylist 類的泛型等效類。該類使用大小可
泛型的好處: 它為使用c#語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行向下強制型別轉換,所以效能得到提高。
效能注意事項:
在決定使用ilist還是使用arraylist類(兩者具有類似的功能)時,記住ilist類在大多數情況下執行得更好並且是型別安全的。
如果對ilist類的型別 t 使用引用型別,則兩個類的行為是完全相同的。但是,如果對型別 t 使用值型別,則需要考慮實現和裝箱問題。
「新增到 arraylist 中的任何引用或值型別都將隱式地向上強制轉換為 object。如果項是值型別,則必須在將其新增到列表中時進行裝箱操作,在檢索時進行取消裝箱操作。強制轉換以及裝箱和取消裝箱操作都會降低效能;在必須對大型集合進行迴圈訪問的情況下,裝箱和取消裝箱的影響非常明顯。
」1、list的基礎、常用方法:
宣告:1、listmlist = new list();
t為列表中元素型別,現在以string型別作為例子
e.g.:listmlist = new list();
2、listtestlist =new list(ienumerablecollection);
以一個集合作為引數建立list
e.g.:
string temarr = ;
listtestlist = new list(temarr);
新增元素:
1、 list. add(t item) 新增一個元素
e.g.:mlist.add("john");
2、 list. addrange(ienumerablecollection) 新增一組元素
e.g.:
string temarr = ;
mlist.addrange(temarr);
3、insert(int index, t item); 在index位置新增一個元素
e.g.:mlist.insert(1, "hei");
遍歷list中元素:
foreach (t element in mlist) t的型別與mlist宣告時一樣
e.g.:
foreach (string s in mlist)
刪除元素:
1、 list. remove(t item)刪除一個值
e.g.:mlist.remove("hunter");
2、 list. removeat(int index); 刪除下標為index的元素
e.g.:mlist.removeat(0);
3、 list. removerange(int index, int count);
從下標index開始,刪除count個元素
e.g.:mlist.removerange(3, 2);
判斷某個元素是否在該list中:
list. contains(t item) 返回true或false,很實用
e.g.:
if (mlist.contains("hunter"))
else
給list裡面元素排序:
list. sort () 預設是元素第一個字母按升序
e.g.:mlist.sort();
給list裡面元素順序反**
list. reverse () 可以與list. sort ()配合使用,達到想要的效果
e.g.:mlist.sort();
list清空:list. clear ()
e.g.: mlist.clear();
獲得list中元素數目:
list. count () 返回int值
e.g.:
int count = mlist.count();
console.writeline("the num of elements in the list: " +count);
2、list的進階、強大方法:
舉例用的list:
string temarr = ;
mlist.addrange(temarr);
list.find 方法:搜尋與指定謂詞所定義的條件相匹配的元素,並返回整個 list 中的第一個匹配元素。
public t find(predicatematch);
predicate是對方法的委託,如果傳遞給它的物件與委託中定義的條件匹配,則該方法返回 true。當前 list 的元素被逐個傳遞給predicate委託,並在 list 中向前移動,從第一個元素開始,到最後一個元素結束。當找到匹配項時處理即停止。
predicate 可以委託給一個函式或者一個拉姆達表示式:
委託給拉姆達表示式:
e.g.:
string listfind = mlist.find(name => //name是變數,代表的是mlist
return false;
});console.writeline(listfind); //輸出是hunter
委託給一個函式:
e.g.:
string listfind1 = mlist.find(listfind); //委託給listfind函式
console.writeline(listfind); //輸出是hunter
listfind函式:
public bool listfind(string name)
return false;
}這兩種方法的結果是一樣的。
list.findlast 方法:搜尋與指定謂詞所定義的條件相匹配的元素,並返回整個 list 中的最後一個匹配元素。
public t findlast(predicatematch);
用法與list.find相同。
list.trueforall方法: 確定是否 list 中的每個元素都與指定的謂詞所定義的條件相匹配。
public bool trueforall(predicatematch);
委託給拉姆達表示式:
e.g.:
bool flag = mlist.trueforall(name =>
else});
console.writeline("true for all: "+flag); //flag值為false
委託給一個函式,這裡用到上面的listfind函式:
e.g.:
bool flag = mlist.trueforall(listfind); //委託給listfind函式
console.writeline("true for all: "+flag); //flag值為false
這兩種方法的結果是一樣的。
list.findall方法:檢索與指定謂詞所定義的條件相匹配的所有元素。
public listfindall(predicatematch);
e.g.:
listsublist = mlist.findall(listfind); //委託給listfind函式
foreach (string s in sublist)
這時sublist儲存的就是所有長度大於3的元素
list.take(n): 獲得前n行 返回值為ienumetable,t的型別與list的型別一樣
e.g.:
ienumerabletakelist= mlist.take(5);
foreach (string s in takelist)
這時takelist存放的元素就是mlist中的前5個
list.where方法:檢索與指定謂詞所定義的條件相匹配的所有元素。跟list.findall方法類似。
e.g.:
ienumerablewherelist = mlist.where(name =>
else
});foreach (string s in sublist)
這時sublist儲存的就是所有長度大於3的元素
list.removeall方法:移除與指定的謂詞所定義的條件相匹配的所有元素。
public int removeall(predicatematch);
e.g.:
mlist.removeall(name =>
else
});foreach (string s in mlist)
這時mlist儲存的就是移除長度大於3之後的元素。
list是一個泛型連結串列...t表示節點元素型別
比如listintlist;表示一個元素為int的連結串列
intlist.add(34); //新增
intlist.remove(34);//刪除
intlist.removeat(0); //刪除位於某處的元素
intlist.count; //連結串列長度
還有insert,find,findall,contains等方法,也有索引方法 intlist[0] = 23;
1.減少了裝箱拆箱
2.便於編譯時檢查資料型別
list就相當於 system.collections名稱空間裡面的list
2樓:匿名使用者
t 代表的是一個類
如listlist=new list(); listlist=new list();
ct上的英文和數字分別都代表什麼意思
ct 上的英文和數字的相關引數 1 分度因數,其取值為1000時,ct值的單位為亨氏單位 hu 2 fov 視場,分為掃描野 sfov 和顯示野 dfov 兩種,掃描野是x線掃描時的範圍,顯示野是資料重建形成的影象範圍,掃描野大於顯示野。3 kv x線的硬度,增大kv值可以使x線的穿透力增加。4 m...
G18K DO 082ct戒指代表什麼意思,主要是直多少錢
g18k do.0.82ct代表是18k金鑲鑽的,主鑽有0.82ct 0.82份 100份為1克拉。值多少錢,那要看鑽的顏色回 淨度 還有車工來判斷。如果顏答色在i j色 級別vvs 又是八心八箭的車工,應該可以值三千左右吧。如果是一般的鑽可能值一千左右。g18k 18k 也就是 含量在75 另外2...
cad裡面的ct什麼意思
ct在cad中所指的含義有多種,需要看是什麼型別圖百紙,在什麼部位什麼構件 版。1 建築圖紙中權的樓梯可分為at bt ct et等,故 ct 可指樓梯的型別。2 水電施工安裝 管道敷設打標方法 ct為電纜橋架,電纜敷設位置 ct為電纜橋架佈置。3 在電氣cad圖中,ct表示線槽。擴充套件資料 函式...