list排序_「肘后备急码」- C#对象List排序

经常遇到要对一个对象List排序的要求,我觉得以下是最方便的方法。

核心代码

主要是实现System.Collections.IComparer这个接口

659d483702cafdae0f1c77dfbbedaefa.png

完整示例

2b089504ae3b0f5642240b19557e5979.png

备注

里面Person我用的是struct没有用class。关于stuct和class的区别为:

  1. 结构体中声明的字段无法赋予初值,类可以。
  2. 结构体的构造函数中,必须为结构体所有字段赋值,类的构造函数无此限制。
  3. 结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。
  4. 结构类型直接存储成员数据,让其他类的数据位于堆中,位于栈中的变量保存的是指向堆中数据对象的引用。
  5. 类的对象是存储在堆空间中,结构存储在栈中。堆空间大,但访问速度较慢,栈空间小,访问速度相对更快。故而,当我们描述一个轻量级对象的时候,结构可提高效率,成本更低。当然,这也得从需求出发,假如我们在传值的时候希望传递的是对象的引用地址而不是对象的拷贝,就应该使用类了。
409d47ac08bc3a69023e47543c75e5ab.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值