温故而知新:类索引器
时间:2022-04-23
本文章向大家介绍温故而知新:类索引器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
类索引器
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
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
- weiapi2.2 HelpPage自动生成接口说明文档和接口测试功能
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统日志查看功能
- C#通过WMI的wind32 的API函数实现msinfo32的本地和远程计算机的系统摘要信息查看功能
- Envoy架构概览(5):负载均衡
- Envoy架构概览(6):异常检测
- Envoy架构概览(7):断路,全局限速和TLS
- Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
- 【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
- Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
- 跨平台:使用OWIN 为WebAPI 宿主
- 如何在UWP中统一处理不同设备间的页面回退逻辑
- new and override
- 初识SignalR~仿QQ即时聊天(群发,单发)(Web,WPF等Demo演示)【上】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端踩坑系列《五》
- linux上安装mitmproxy
- Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)
- Elasticsearch学习笔记 -- 1
- Jmeter(二十四) - 从入门到精通 - JMeter函数 - 中篇(详解教程)
- [javascript] elementui和vue下复制粘贴上传图片
- SQL Server通过创建临时表遍历更新数据
- 对于 JavaScript 中循环之间的技术差异概述
- 初识 webpack 原理——自定义插件
- 高性能解决线程饥饿的利器 StampedLock
- 前端应该知道的web调试工具——whistle
- 最强大的 CSS 布局 —— Grid 布局
- SAP Spartacus ProductConnector和ProductService实现
- Sorted Adjacent Differences(CodeForces - 1339B)【思维+贪心】
- Redis 发布订阅,小功能大用处,真没那么废材!