C 泛型 使用泛型List

2021-09-08 08:43:28 字數 1854 閱讀 1915

一、泛型的優點

效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。

型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。

**重用。使用泛型型別可以最大限度地重用**,保護型別的安全以及提高效能。

使用泛型

使用泛型可以定義泛型類,泛型介面,泛型方法等。.net framework類庫在system.collection.generic愈命名空間中包含幾個新的泛型集合類,list和dictionary是其中非常重要的兩種,泛型介面icomparable和icomparer在實際中也有很重要的作用。

泛型集合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);}}

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

C 泛型 使用泛型List

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

泛型List與非泛型ArrayList

arraylist集合的用處越來越窄了,list static void main string args arraylist的不安全性一目了然,型別不安全,必將導致各種攻擊的產生,static void main string args 相比不安全的arraylist來說,list 的型別安全性使...

C 筆記 List 泛型

所屬命名空間 system.collections.generic list類是 arraylist 類的泛型等效類。該類使用大小可按需動態增加的陣列實現 ilist 泛型介面。泛型的好處 它為使用c 語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行,向...