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 Dictionary<int, Person> dics = new Dictionary<int, Person>(); 39 40 /// <summary> 41 /// 类索引器 42 /// </summary> 43 /// <param name="no"></param> 44 /// <returns></returns> 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 /// <summary> 72 /// 类索引器重载 73 /// </summary> 74 /// <param name="name"></param> 75 /// <returns></returns> 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
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦