泛型集合List

2021-06-16 18:09:52 字數 1994 閱讀 4259

泛型集合list泛型最重要的應用就是集合操作,使用泛型集合可以提高**重用性,型別安全和更佳的效能。

list的用法和arraylist相似,list有更好的型別安全性,無須拆,裝箱。定義乙個list泛型集合的語法如下:

list集合名=new list();

在泛型定義中,泛型型別引數「」是必須指定的,其中t是定義泛型類時的佔位符,其並不是一種型別,僅代表某種可能的型別。在定義時t會被使用的型別代替。泛型集合list中只能有乙個引數型別,「」中的t可以對集合中的元素型別進行約束。

注意:泛型集合必須例項化,例項化時和普通類例項化時相同,必須在後面加上「()」。

如定義乙個學生類的list,示例如下:

liststudents=new list();

list新增、刪除、檢索元素的方法和arraylist相似,明顯的特點是不需要像arraylist那樣裝箱和拆箱。

using system;

using system.collections.generic;

using system.collections;

public class student

public string number

public int score

}class program

", students.count);

foreach (student stu in students)

\t\t", stu.name, stu.number, stu.score);

}students.remove(stu1);

console.writeline("集合中的元素個數為", students.count);

console.readline();}}

上面**定義了student型別的list泛型集合,其中的t被資料型別student代替,這樣定義的集合只能儲存student型別的元素,保證了型別安全,遍歷集合元素時,沒有經過拆箱操作,提高了效能。

list和arraylist的區別

list和arraylist的相同點:新增元素、刪除元素、通過索引訪問元素方法相同。

list和arraylist的不同點:

arraylist可以新增任意型別元素;list對新增的元素具有型別約束;

arratlist新增時裝箱,讀取時拆箱;list不需要裝箱,拆箱操作;

我們再看乙個例子:

using system;

using system.collections;

using system.collections.generic;

class person

//姓名

public string name

}//年齡

public int age}}

class program

\t", p.name, p.age);

}}}可以看到,泛型集合大大簡化了集合的實現**,通過它,可以輕鬆建立指定型別的集合。非但如此,泛型集合還提供了更加強大的功能,下面看看其中的排序及搜尋。

以下利用泛型來實現combox控制項的資料載入

public class vendor

set

}public string usercode

set

}public vendor(string display, string value)

public vendor()

}/// /// 取得**商名稱

///

///

///

public listgetvendlist()

}return lstv;

}//測試combox

bll.po vd = new bll.po();

listlst =new list();

lst =vd.getvendlist();

foreach (model.vendor v in lst)

List泛型集合

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

泛型集合List

泛型是具有佔位符 型別引數 的類 結構 介面和方法,這些佔位符是類 結構 介面和方法所儲存或使用的乙個或多個型別的佔位符。泛型集合類可以將型別引數用作它所儲存的物件的型別的佔位符 型別引數作為其字段的型別和其方法的引數型別出現。泛型方法可以將其型別引數用作其返回值的型別或者其形參的 型別之一。lis...

List泛型集合總結(一)

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