日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C#2.0泛型-Dictionary,List的用法

發(fā)布時間:2025/4/14 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#2.0泛型-Dictionary,List的用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

泛型最常見的用途是創(chuàng)建集合類。
.NET?Framework?類庫在?System.Collections.Generic?命名空間中包含幾個新的泛型集合類。應盡可能地使用這些類來代替普通的類,如?System.Collections?命名空間中的?ArrayList,HashTable等。
下面我們就來說下,幾個泛型集合類的用法:

一.Dictionary?
此類在?.NET?Framework?2.0?版中是新增的。表示鍵和值的集合。命名空間:System.Collections.Generic,程序集:mscorlib(在?mscorlib.dll?中)
????class?TestGenericList
????{
?????????static?void?Main()
????????{
?//聲明對象,參數(shù)表示,鍵是int類型,值是string類型
????????????Dictionary<int,?string>?fruit?=?new?Dictionary<int,?string>();
????????????try{
?????????????//加入重復鍵會引發(fā)異常
????????????????fruit.Add(1,?\"蘋果\");
????????????????fruit.Add(2,?\"桔子\");
????????????????fruit.Add(3,?\"香蕉\");
????????????????fruit.Add(4,?\"菠蘿\");?????????????
??//參數(shù)錯誤將引發(fā)異常,如下所示
??//fruit.Add(\"5\",?\"aa\");
????????????}
????????????catch?(ArgumentException)
????????????{
????????????????Console.WriteLine(\"添加錯誤!!!\");
????????????}
?//因為引入了泛型,所以鍵取出后不需要進行Object到int的轉(zhuǎn)換,值的集合也一樣
????????????foreach?(int?i?in?fruit.Keys)
????????????{
????????????????Console.WriteLine(\"鍵是:{0}??值是:{1}\",i,fruit); [Page]
????????????}
??????//刪除指定鍵,值
????????????fruit.Remove(1);
?????????????//判斷是否包含指定鍵
????????????if?(fruit.ContainsKey(1))
????????????{
????????????????Console.WriteLine(\"包含此鍵\");
????????????}
????????????//清除集合中所有對象
????????????fruit.Clear();
????????}
????}
Dictionary遍歷輸出的順序,就是加入的順序,這點與Hashtable不同,其它方法如:ContainsKey?,ContainsValue?,Remove?等,使用方法基本一致。

二、List類
注意:此類在?.NET?Framework?2.0?版中是新增的。表示可通過索引訪問的對象的強類型列表。提供用于對列表進行搜索、排序和操作的方法。命名空間:System.Collections.Generic,程序集:mscorlib(在?mscorlib.dll?中),List?類是?ArrayList?類的泛型等效類。

???//聲明一個泛型類???
????class?TestGenericList
????{
????????static?void?Main()
????????{
????????????//聲明一個List對象,只加入string參數(shù)
????????????List<string>?names?=?new?List<string>();
????????????names.Add(\"喬峰\");
????????????names.Add(\"歐陽峰\");
????????????names.Add(\"馬蜂\");
????????????//遍歷List


????????????foreach?(string?name?in?names)
????????????{
????????????????Console.WriteLine(name); [Page]
????????????}
????????????//向List中插入元素
????????????names.Insert(2,?\"張三峰\");
????????????//移除指定元素
????????????names.Remove(\"馬蜂\");????????????
????????}
????}
在決定使用?List?還是使用?ArrayList?類(兩者具有類似的功能)時,記住?List?類在大多數(shù)情況下執(zhí)行得更好并且是類型安全的。如果對?List?類的類型?T?使用引用類型,則兩個類的行為是完全相同的。但是,如果對類型?T?使用值類型,則需要考慮實現(xiàn)和裝箱問題。

如果對類型?T?使用值類型,則編譯器將特別針對該值類型生成?List?類的實現(xiàn)。這意味著不必對?List?對象的列表元素進行裝箱就可以使用該元素,并且在創(chuàng)建大約?500?個列表元素之后,不對列表元素裝箱所節(jié)省的內(nèi)存將大于生成該類實現(xiàn)所使用的內(nèi)存,中國自學編程網(wǎng),www.zxbc.cn 。?

其實我們也可以自己定義一個泛型類,如下所示:
???//聲明一個泛型類
????public?class?ItemList<T>
????{
????????void?Add(T?item)?{?}
????}
????class?TestGenericList
????{
????????private?class?ExampleClass?{?}
????????static?void?Main()
????????{
????????????//?聲明一個對象,只能加入int型
????????????ItemList<int>?list1?=?new?ItemList<int>();

????????????//聲明一個對象,只能加入Student類型,Student類為自定義類
????????????ItemList<Student>?list2?=?new?ItemList<Student>();

????????}
????}

泛型的用法還有很多種,如泛型方法,泛型委托,泛型接口等。

轉(zhuǎn)載于:https://www.cnblogs.com/dudu837/archive/2009/07/24/1530018.html

總結(jié)

以上是生活随笔為你收集整理的C#2.0泛型-Dictionary,List的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。