泛型集合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抽象類繼承乙個自定...