類索引器的老生常談
1 using System; 2 using System.Collections.Generic; 3 4 namespace Prototype 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 PersonContainer pc = new PersonContainer(); 11 pc[1] = new Person() { No = 1, Age = 30, Name = "楊俊明" }; 12 pc[2] = new Person() { No = 2, Age = 30, Name = "Mike" }; 13 14 Console.WriteLine(pc[1] + "n" + pc[2] + "n" + pc[3]); 15 16 Console.WriteLine(pc["楊俊明"] + "n" + pc["MIKE"] + "n" + pc["NotExists"]); 17 18 Console.Read(); 19 20 } 21 } 22 23 24 public class Person 25 { 26 public int No { set; get; } 27 public string Name { set; get; } 28 public int Age { set; get; } 29 30 public override string ToString() 31 { 32 return string.Format("No:{0},Name:{1},Age:{2}", No, Name, Age); 33 } 34 } 35 36 public class PersonContainer 37 { 38 Dictionarydics = new Dictionary (); 39 40 /// 41 /// 類索引器 42 /// 43 /// 44 ///45 public Person this[int no] 46 { 47 get 48 { 49 if (dics.ContainsKey(no)) 50 { 51 return dics[no]; 52 } 53 else 54 { 55 return null; 56 } 57 } 58 set 59 { 60 if (!dics.ContainsKey(no)) 61 { 62 dics.Add(no, value); 63 } 64 else 65 { 66 dics[no] = value; 67 } 68 } 69 } 70 71 /// 72 /// 類索引器過載 73 /// 74 /// 75 ///76 public Person this[string name] 77 { 78 //只讀 79 get 80 { 81 Person _person = null; 82 foreach (Person _p in dics.Values) 83 { 84 if (string.Compare(_p.Name, name, true) == 0) 85 { 86 _person = _p; 87 break; 88 } 89 } 90 91 return _person; 92 } 93 } 94 } 95 } 96
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2800136/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 老生常談-Activity
- 老生常談之再談this
- 老生常談 String、StringBuilder、StringBufferUI
- 老生常談之CSS的垂直居中CSS
- 老生常談之NSProxy和NSTimer
- iOS面試題 — 老生常談iOS面試題
- 老生常談之Flux與Redux思想Redux
- 老生常談-實現一個PromisePromise
- 老生常談,聊聊前端的資料互動前端
- 老生常談:Promise 用法與原始碼分析Promise原始碼
- 老生常談Java虛擬機器垃圾回收機制(必看篇)Java虛擬機
- 《iOS面試題 - 老生常談》之提示答案iOS面試題
- 老生常談之 PHP 基礎排序演算法PHP排序演算法
- 老生常談:什麼樣的(機器學習)結果才有推廣(泛化)價值機器學習
- 老生常談——利用訊息佇列處理分散式事務佇列分散式
- 老生常談!程式設計師為什麼要閱讀原始碼?程式設計師原始碼
- 淺談 PHP 中異常類的使用PHP
- 【面試技巧】老生常談之 n 種使用 CSS 實現三角形的技巧面試CSS
- Web 前置知識——老生常談的從 URL 輸入到頁面展現背後發生的事Web
- 八年安卓開發經驗的老兵,這樣告訴你,面試中最老生常談的話題!安卓面試
- 談談InnoDB中的B+樹索引索引
- Mysql 索引的分類MySql索引
- Mysql索引優化之索引的分類MySql索引優化
- 淺談MySQL的B樹索引與索引優化MySql索引優化
- 淺談Mysql索引MySql索引
- 淺談sql索引SQL索引
- 常見儲存器分類
- 談談MYSQL索引是如何提高查詢效率的MySql索引
- 常見的索引模型淺析索引模型
- MySQL淺談(索引、鎖)MySql索引
- 面試官:談談你對mysql索引的認識?面試MySql索引
- PG裡常見的欄位有索引但未使用索引的原因索引
- mysql 索引分類MySql索引
- MySQL常見索引概念MySql索引
- 淺談聚簇索引與非聚簇索引索引
- 談談資料安全常見的誤區
- 談一談常見的資料治理怪象
- 索引器索引