国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

C# 泛型集合實(shí)例應(yīng)用淺析

開發(fā) 后端
C# 泛型集合實(shí)例應(yīng)用不僅向你介紹了C# 泛型集合的概念,還向你介紹了C# 泛型集合實(shí)例應(yīng)用的具體的事宜,希望對(duì)你學(xué)習(xí)C# 泛型集合有所幫助。

C# 泛型集合了解之前我們明白集合是OOP中的一個(gè)重要概念,C#中對(duì)集合的全面支持更是該語言的精華之一。C# 泛型是C# 2.0中的新增元素(C++中稱為模板),主要用于解決一系列類似的問題。這種機(jī)制允許將類名作為參數(shù)傳遞給泛型類型,并生成相應(yīng)的對(duì)象。將泛型(包括類、接口、方法、委托等)看作模板可能更好理解,模板中的變體部分將被作為參數(shù)傳進(jìn)來的類名稱所代替,從而得到一個(gè)新的類型定義。泛型是一個(gè)比較大的話題,在此不作詳細(xì)解析,有興趣者可以查閱相關(guān)資料。

C# 泛型集合類用起來十分的方便快捷。在這篇隨筆里面,我將用鏈表來模擬c#中的 List﹤T﹥ 類的行為,廢話不多說,下面來看我的實(shí)現(xiàn)代碼,代碼中已經(jīng)寫了注釋,所以不再對(duì)代碼進(jìn)行額外的說明:

  1. using System.Collections;  
  2.  
  3. class MyList﹤T﹥  
  4. {  
  5. private MyListNode firstNode;//首節(jié)點(diǎn)  
  6. private int count;//C# 泛型集合-節(jié)點(diǎn)計(jì)數(shù)  
  7.    
  8. public MyList()  
  9. {  
  10. this.firstNode = null;  
  11. this.count = 0;  
  12. }  
  13. //C# 泛型集合-得到List長度  
  14. public int GetLength()  
  15. {  
  16. return this.count;  
  17. }  
  18.  
  19. //增加一個(gè)節(jié)點(diǎn)  
  20. public void AddElement(T data)  
  21. {  
  22. MyListNode first = this.firstNode;  
  23. if(first==null)  
  24. {  
  25. this.firstNode=new MyListNode(data);  
  26. this.count++;  
  27. return;  
  28. }  
  29. while (first.next != null)  
  30. {  
  31. first = first.next;  
  32. }  
  33. first.next = new MyListNode(data);  
  34. this.count++;  
  35. }  
  36.  
  37. //C# 泛型集合-刪除一個(gè)節(jié)點(diǎn)  
  38. public bool Remove(T data)  
  39. {  
  40. MyListNode first = this.firstNode;  
  41. if (first.data.Equals(data))  
  42. {  
  43. this.firstNode = first.next;  
  44. this.count--;  
  45. return true;  
  46. }  
  47. while (first.next!=null)  
  48. {  
  49. if (first.next.data.Equals(data))  
  50. {  
  51. first.next = first.next.next;  
  52. this.count--;  
  53. return true;  
  54. }  
  55. }  
  56. return false;  
  57. }  
  58.  
  59. //C# 泛型集合-得到指定索引上的集合元素  
  60. public T GetAtIndex(int index)  
  61. {  
  62. int innercount = 1;  
  63. MyListNode first = this.firstNode;  
  64. if (index ﹥ count)  
  65. {  
  66. throw new Exception("Index out of boundary");  
  67. }  
  68. else 
  69. {  
  70. while (innercount ﹤ index)  
  71. {  
  72. first = first.next;  
  73. innercount++;  
  74. }  
  75. return first.data;  
  76. }  
  77. }  
  78.  
  79. //在指定的索引上插入新的元素  
  80. public void InsertAtIndex(int index,T data)  
  81. {  
  82. int innercount = 1;  
  83. MyListNode first = this.firstNode;  
  84. if (index ﹥ count)  
  85. {  
  86. throw new Exception("Index out of boundary");  
  87. }  
  88. if (index == 1)  
  89. {  
  90. this.firstNode = new MyListNode(data);  
  91. this.firstNode.next = first;  
  92. }  
  93. else 
  94. {  
  95. while (innercount ﹤ index - 1)  
  96. {  
  97. first = first.next;  
  98. innercount++;  
  99. }  
  100. MyListNode newNode = new MyListNode(data);  
  101. newNode.next = first.next;  
  102. first.next = newNode;  
  103. }  
  104. this.count++;  
  105. }  
  106.  
  107. //C# 泛型集合-刪除指定索引上的集合元素  
  108. public void RemoveAtIndex(int index)  
  109. {  
  110. int innercount = 1;  
  111. MyListNode first = this.firstNode;  
  112. if (index ﹥ count)  
  113. {  
  114. throw new Exception("Index out of boundary");  
  115. }  
  116. if (index == 1)  
  117. {  
  118. this.firstNode = first.next;  
  119. }  
  120. else 
  121. {  
  122. while (innercount ﹤ index - 1)  
  123. {  
  124. first = first.next;  
  125. innercount++;  
  126. }  
  127. first.next = first.next.next;  
  128. }  
  129. this.count--;  
  130. }  
  131.  
  132. //C# 泛型集合-刪除集合中的所有元素  
  133. public void RemoveAll()  
  134. {  
  135. this.firstNode = null;  
  136. this.count = 0;  
  137. }  
  138.  
  139. //為實(shí)現(xiàn)該集合類能用foreach進(jìn)行遍歷  
  140. public IEnumerator GetEnumerator()  
  141. {  
  142. MyListNode first = this.firstNode;  
  143. while (first!= null)  
  144. {  
  145. yield return first.data;  
  146. first = first.next;  
  147. }  
  148. }  
  149.  
  150. //內(nèi)部節(jié)點(diǎn)類  
  151. private class MyListNode  
  152. {  
  153. public T data { getset; }//節(jié)點(diǎn)上的元素值  
  154. public MyListNode next { getset; }//節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)  
  155. public MyListNode(T nodeData)  
  156. {  
  157. this.data = nodeData;  
  158. this.next = null;  
  159. }  
  160. }  
  161. }  

下面是C# 泛型集合對(duì)這個(gè)模擬類的使用:

  1. class Program  
  2. {  
  3. static void Main(string[] args)  
  4. {  
  5. MyList﹤string﹥ ml = new MyList﹤string﹥();  
  6. ml.AddElement("xu");  
  7. ml.AddElement("jin");  
  8. ml.AddElement("lin");  
  9. ml.AddElement("love");  
  10. ml.AddElement("jasmine");  
  11. ml.InsertAtIndex(4, "fiercely");  
  12. ml.RemoveAtIndex(2);  
  13. ml.Remove("lin");  
  14. foreach (string s in ml)  
  15. {  
  16. Console.WriteLine(s);  
  17. }  
  18. }  

C# 泛型集合實(shí)例應(yīng)用的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# 泛型集合有所幫助。

【編輯推薦】

  1. C# 泛型應(yīng)用中屬性淺析
  2. C#泛型操作數(shù)據(jù)庫切換實(shí)踐
  3. C# 泛型基礎(chǔ)知識(shí)學(xué)習(xí)大全
  4. C# 泛型使用心得淺析
  5. C# 泛型集合概念及應(yīng)用淺析
責(zé)任編輯:仲衡 來源: 51cto.com
相關(guān)推薦

2009-08-24 17:39:21

C# 泛型集合

2009-08-24 18:15:24

C# Dictiona

2009-08-24 15:12:13

C# 泛型接口

2009-08-24 16:39:19

C# 泛型應(yīng)用

2009-08-24 17:27:05

C#泛型應(yīng)用

2009-08-24 11:35:20

C# 泛型應(yīng)用

2009-08-24 10:37:27

C# 泛型

2009-08-24 14:26:42

C# 泛型類

2009-08-24 14:51:25

C# 泛型泛型類型

2009-08-24 15:50:23

C# 泛型C# 泛型委托

2009-08-24 14:20:13

C# 強(qiáng)制類型轉(zhuǎn)換

2009-08-17 17:49:20

C# 枚舉

2009-08-24 15:28:19

C# 泛型方法

2009-08-24 13:31:38

C# 泛型約束

2009-08-24 10:07:57

C#泛型處理

2009-08-24 18:22:05

C# 泛型編程

2009-08-24 16:19:42

C# 泛型方法

2009-08-24 16:01:44

C# 泛型

2009-12-24 09:16:11

C#泛型

2009-08-19 11:28:41

C#操作Word
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久丁香四色| 国产精品一区二区三区av麻| 国产精品免费视频观看| 美女av在线播放| 欧美四级电影在线观看| 99在线视频精品| 午夜免费视频在线国产| 久久久综合亚洲91久久98| 成人激情免费在线| 日韩中文不卡| 亚洲一级片免费| 在线视频xx| 日韩精品电影网站| 手机成人在线| 免费福利片在线观看| 一区二区成人网| 3d黄动漫网站| 黄a在线观看| 国产精品久久乐| 天堂俺去俺来也www久久婷婷| 国产视频一区免费看| 国产精品一区一区三区| 久久一区二区三区国产精品| 99在线热播精品免费| 7777精品伊人久久久大香线蕉| 久久精品国产亚洲| 成人欧美一区二区三区在线| 999久久欧美人妻一区二区| 久久免费看视频| 深夜福利亚洲| 奇米影视在线99精品| 亚洲精品乱码久久久久久黑人| 精品国免费一区二区三区| 欧美人在线视频| 国产精品swag| 男人的天堂在线免费视频| 羞羞网站在线免费观看| 农村少妇一区二区三区四区五区 | 欧美激情自拍偷拍| hitomi一区二区三区精品| 国产美女精品人人做人人爽| 成人国产精品免费观看| 国产欧美一区二区精品性色| 国产成人精品亚洲午夜麻豆| 亚洲婷婷国产精品电影人久久| 国产拍欧美日韩视频二区| 日韩丝袜情趣美女图片| 8x拔播拔播x8国产精品| 91精品视频播放| 午夜精品在线免费观看| 二吊插入一穴一区二区| 国产精品一二| 欧美日韩三级在线| 91高跟黑色丝袜呻吟在线观看| www.国产91| 91成人精品观看| 国内激情久久| 一区二区成人在线视频| 欧美高清videos高潮hd| 国产精品亚洲综合| www.色就是色| 亚洲精品a区| 美女性感视频久久| 一本色道**综合亚洲精品蜜桃冫 | 精品久久久中文字幕| 影音国产精品| 激情五月婷婷六月| 免费看毛片的网址| 丝袜美腿一区二区三区| 亚洲欧洲自拍偷拍| 999一区二区三区| the porn av| 神马久久av| 大尺度一区二区| 国产精品福利av| 九九热在线精品视频| 看黄色免费网站| av免费在线观| 在线观看免费视频你懂的| www.精品| 色悠悠久久久久| 亚洲综合国产精品| 在线看视频不卡| 国产探花视频在线观看| 奇米综合一区二区三区精品视频| 欧美一级精品大片| 日韩精品自拍偷拍| 成人黄色在线免费| 黄色精品视频网站| 偷拍一区二区三区| 欧美一级xxx| 在线一区日本视频| 一本色道久久亚洲综合精品蜜桃| 欧美男人天堂| 黄网站免费在线观看| 久久综合色88| 久久国产乱子伦免费精品| 午夜小视频在线| 国产成人在线看| 国产成人综合亚洲| 久草中文在线| 91在线视频官网| 成人性教育视频在线观看| 黄色软件在线| 国产一区二区三区四区老人| 欧美日韩国产综合一区二区 | 亚洲视频精品在线| 青娱乐自拍偷拍| 视频国产一区| 色哟哟一区二区三区| 亚洲精品欧洲精品| 欧美伦理在线视频| 美女少妇精品视频| 99se婷婷在线视频观看| 一本久道高清无码视频| 久久国产高清| 亚洲精品一区二区在线| 成人精品一区二区三区电影黑人 | 日韩av在线中文字幕| 一本一道久久a久久| 亚洲成av人在线观看| 成人午夜免费剧场| 精品免费一区二区| 深夜福利日韩在线看| eeuss影院www在线观看| 久久人人97超碰com| 亚洲自拍偷拍一区| 成人精品视频在线观看| 7799精品视频| 黄色美女网站在线观看| 亚洲精品自拍动漫在线| 免费高清在线观看免费| 日韩电影网1区2区| 久久久久久久久久久久久久一区 | 九色自拍视频在线观看| 欧美大片网站| 亚洲电影在线看| 黄污视频在线观看| 亚洲免费视频观看| 亚洲啊v在线免费视频| 98精品在线视频| 国内成人在线| 日本一区二区三区四区在线观看 | 久久深夜福利免费观看| 亚洲图区一区| 欧美一区二区视频网站| 亚洲成人套图| 欧美在线视频你懂得| 1069男同网址| 香蕉视频一区二区三区| 91高清视频免费| 在线日韩av| 亚洲精品av在线播放| 国产精品69xx| 少妇高潮久久久久久潘金莲| 99a精品视频在线观看| 国产精品露脸自拍| 国内精品美女在线观看| 在线亚洲美日韩| 国产视频亚洲色图| 亚洲第一区视频| 亚洲高清免费观看高清完整版| 91高清在线| 成人毛片视频在线观看| 亚洲国产欧美日韩| bt在线麻豆视频| 国产网红主播福利一区二区| 欧美在线一二三区| 亚洲国产精品综合久久久| 91国产美女在线观看| 久久电影天堂| 中文在线不卡视频| 亚洲精品福利| 欧美激情欧美狂野欧美精品| 韩国主播福利视频一区二区三区| 欧美网站一区二区| 一级毛片在线播放| 91久久免费观看| 国产乱视频在线观看| 欧美日韩国产精品一区二区三区四区| 中文字幕伦理免费在线视频| 在线电影欧美成精品| 国产日本在线观看| 7799精品视频| sm在线观看| 美女福利视频一区| 激情综合电影网| 国产免费一区二区| 亚洲瘦老头同性70tv| 中文字幕一区二区三区蜜月| 国产精品视频分类| 欧美日韩亚洲成人| 天堂va在线高清一区| 国产精品都在这里| 99国产精品| 久久精品aaaaaa毛片| caoporn国产一区二区| 欧美日韩伦理片| 国产成人亚洲综合91精品| 欧美黄色一区|