前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >温故而知新:类索引器

温故而知新:类索引器

作者头像
菩提树下的杨过
发布2018-01-22 16:19:01
4870
发布2018-01-22 16:19:01
举报
文章被收录于专栏:菩提树下的杨过

类索引器

代码语言:js
复制
 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 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-01-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档