当前位置: 首页 > news >正文

C# 集合(六) —— 自定义集合Collection类

总目录
C# 语法总目录

集合六 Collection

  • 1. 自定义集合Collection
  • 其他

1. 自定义集合Collection

Collection可以对添加删除元素或者添加删除属性进行事件响应。

class Person
{public string name;public int age;public Person(){this.name = "";this.age = 0;}public Person(string name, int age){this.name = name;this.age = age;}public override string ToString(){return this.name + "," + this.age;}
}
class PersonCollection : Collection<Person>
{protected override void InsertItem(int index, Person item){base.InsertItem(index, item);Console.WriteLine("insert ele: index id {0},item is {1}",index,item.ToString());}protected override void SetItem(int index, Person item){base.SetItem(index, item);Console.WriteLine("set ele: index id {0},item is {1}", index, item.ToString());}protected override void RemoveItem(int index){base.RemoveItem(index);Console.WriteLine("remove ele: index id {0}", index);}protected override void ClearItems(){base.ClearItems();Console.WriteLine("collect is clear");}
}
internal class Program
{static void Main(string[] args){Console.WriteLine("Hello, World!");PersonCollection people = new PersonCollection();people.Add(new Person());people.Insert(0, new Person("lisi", 50));people[1] = new Person("anger", 19);people.RemoveAt(1);foreach (var item in people){Console.WriteLine(item.ToString());}}
}

其他

方法:string.Compare

string str1 = "help";
string str2 = "Help";
string str3 = "help";int res = string.Compare(str1, str2);
int res1 = string.Compare(str1, str3);
Console.WriteLine(res);     //-1
Console.WriteLine(res1);    //0

总目录
C# 语法总目录

相关文章:

  • 音视频开发8 音视频中SDL的使用,SDL 在windows上环境搭建,SDL 使用 以及 常用 API说明,show YUV and play PCM
  • C++第十七弹---string使用(下)
  • 详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版)
  • Java 三种主流的消息中间件 RabbitMQ、Kafka 和 RocketMQ 特点以及适用,使用场景 学习总结
  • 【设计模式】JAVA Design Patterns——Command(事务模式)
  • MySQL视图教程(01):创建视图
  • YOLOv10 论文学习
  • 一.架构设计
  • 互联网十万个为什么之什么是虚拟化?
  • kubenetes中K8S的命名空间状态异常强制删除Terminating的ns
  • 架构师必考题--软件系统质量属性
  • 【蓝桥杯】国赛普及-
  • 变分自动编码器(VAE)深入理解与总结
  • ffplay 使用文档介绍
  • js 生成二维码
  • SegmentFault for Android 3.0 发布
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • dva中组件的懒加载
  • Javascript编码规范
  • JavaScript创建对象的四种方式
  • JSONP原理
  • js中forEach回调同异步问题
  • nodejs调试方法
  • nodejs实现webservice问题总结
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • rc-form之最单纯情况
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • React的组件模式
  • Selenium实战教程系列(二)---元素定位
  • Swift 中的尾递归和蹦床
  • underscore源码剖析之整体架构
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 大数据与云计算学习:数据分析(二)
  • 反思总结然后整装待发
  • 回顾 Swift 多平台移植进度 #2
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端面试之CSS3新特性
  • 一份游戏开发学习路线
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​香农与信息论三大定律
  • #if等命令的学习
  • #Java第九次作业--输入输出流和文件操作
  • (3)nginx 配置(nginx.conf)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (LeetCode) T14. Longest Common Prefix
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .Net小白的大学四年,内含面经
  • .NET中分布式服务