日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

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

泛型最常見的用途是創建集合類。
.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()
????????{
?//聲明對象,參數表示,鍵是int類型,值是string類型
????????????Dictionary<int,?string>?fruit?=?new?Dictionary<int,?string>();
????????????try{
?????????????//加入重復鍵會引發異常
????????????????fruit.Add(1,?\"蘋果\");
????????????????fruit.Add(2,?\"桔子\");
????????????????fruit.Add(3,?\"香蕉\");
????????????????fruit.Add(4,?\"菠蘿\");?????????????
??//參數錯誤將引發異常,如下所示
??//fruit.Add(\"5\",?\"aa\");
????????????}
????????????catch?(ArgumentException)
????????????{
????????????????Console.WriteLine(\"添加錯誤!!!\");
????????????}
?//因為引入了泛型,所以鍵取出后不需要進行Object到int的轉換,值的集合也一樣
????????????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參數
????????????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?類在大多數情況下執行得更好并且是類型安全的。如果對?List?類的類型?T?使用引用類型,則兩個類的行為是完全相同的。但是,如果對類型?T?使用值類型,則需要考慮實現和裝箱問題。

如果對類型?T?使用值類型,則編譯器將特別針對該值類型生成?List?類的實現。這意味著不必對?List?對象的列表元素進行裝箱就可以使用該元素,并且在創建大約?500?個列表元素之后,不對列表元素裝箱所節省的內存將大于生成該類實現所使用的內存,中國自學編程網,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>();

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

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

轉載于:https://www.cnblogs.com/dudu837/archive/2009/07/24/1530018.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。