c# 自定义排序
来源:互联网 发布:程序员年终工作汇报 编辑:程序博客网 时间:2024/06/01 07:57
首先:新建一个类,继承于IComparer<T>,其中T为任意类型
然后:实现public int Compare( T x, T y )方法,x>y返回大于0的值,小于返回小于0的值,等于返回0。
最后,使用Sort<T>( T[] array, IComparer<T> comparer )方法即可。
提示:默认是升序,如果要降序,完了之后再来一次Array.Reverse( )即可。
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace templeUse {
class Program {
static void Main( string[] args ) {
Program p = new Program();
p.Run();
}
public void Run() {
Rank r1 = new Rank();
r1.age = 20;
r1.money = 10000;
Rank r2 = new Rank();
r2.age = 10;
r2.money = 20000;
Rank r3 = new Rank();
r3.age = 20;
r3.money = 20000;
Rank r4 = new Rank();
r4.age = 20;
r4.money = 10000;
Rank[] ary = new Rank[4];
ary[0] = r1;
ary[1] = r2;
ary[2] = r3;
ary[3] = r4;
Array.Sort<Rank>( ary, new sort() );
foreach ( var item in ary ) {
Console.WriteLine( "age:{0},money{1}", item.age,item.money);
}
Console.ReadKey();
Array.Reverse( ary );
foreach ( var item in ary ) {
Console.WriteLine( "age:{0},money{1}", item.age, item.money );
}
Console.ReadKey();
}
}
}
class Rank{
public int age;
public int money;
}
class sort : IComparer<Rank> {
public int Compare( Rank x, Rank y ) {
if ( x.age > y.age )
return 1;
if ( x.age == y.age ) {
if ( x.money > y.money )
return 1;
else if ( x.money == y.money )
return 0;
else
return -1;
}
return -1;
}
}
- c#自定义排序方法
- c# 自定义排序
- C# 自定义类排序
- C# List.Sort()自定义比较方法排序
- C#自定义对象排序(数组/ArrayList)
- C#排序函数和自定义比较器
- C# List<T>自定义排序方法
- C# List<T> 自定义排序方法
- C#自定义排序技巧-本部门数据排序
- C#自定义网格组件(DataGridView)实现数据分组、排序
- c#自定义条件排序 可以使用中文条件 datagirdview
- C# 使用IComparer自定义List类的排序方案
- C# 使用IComparer自定义List类的排序方案
- C# 实现Sort接口 排序自定义实体类集合
- 自定义排序
- 自定义排序
- 自定义排序
- 自定义排序
- python 关于join 函数需要注意的一点
- 斐讯K2一键刷华硕固件支持最新固件22.5.10.176
- powervm虚拟化分析
- 研究生必读
- mysql主从复制配置
- c# 自定义排序
- 剑指Offer(第二版)面试题26:树的子结构
- MongoDB学习笔记
- 如何跳转对应的应用市场的app
- UESTC 1641 此情无计可消除,才下眉头,却上心头。
- 基于 HTML5 的 Dojo Widget 开发
- ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
- 10064---JVM GC 机制与性能优化
- action.ResumeAction.toaddUserInfo() 问题解决