ArrayList 的 IComparer排序
来源:互联网 发布:mysql的存储过程写法 编辑:程序博客网 时间:2024/05/16 09:11
例子 1:
public class comper : IComparer
{
int IComparer.Compare(object a, object b)
{
float flotA = 0, flotB = 0;
bool isFloat = float.TryParse(a.ToString(), out flotA) && float.TryParse(b.ToString(), out flotB);
if (!isFloat)
{
return string.Compare(a.ToString(), b.ToString(), false);
}
else
{
return flotA == flotB ? 0 : (flotA>flotB?1:-1);
}
}
}
调用
ArrayList tList = new ArrayList();
IComparer myComperMethod = new comper();
tList.Sort(myComperMethod);
例子 2:
C# code
public class EmployeeInfo
{
public String _Name;
public int _Age;
public EmployeeInfo(String _Name, int _Age)
{
this._Name = _Name;
this._Age = _Age;
}
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public int Age
{
get { return _Age; }
set { _Age = value; }
}
}
C# code
using System;
using System.Collections;
using System.Reflection;
public class Mycomparator : IComparer
{
public Mycomparator(){ }
int IComparer.Compare(Object o1, Object o2)
{
EmployeeInfo e1 = (EmployeeInfo)o1;
EmployeeInfo e2 = (EmployeeInfo)o2;
if (e1.Age < e2.Age)
return 1;
else if (e1.Age > e2.Age)
return -1;
else
return 0;
}
public static IComparer sortAgeAscending()
{
return (IComparer)new Mycomparator();
}
}
C# code
EmployeeInfo[] arra = new EmployeeInfo[]
{
new EmployeeInfo("张三", 58),
new EmployeeInfo("李四", 26),
new EmployeeInfo("王五", 71),
new EmployeeInfo("赵六", 19)
};
Array.Sort(arra, Mycomparator.sortAgeAscending());
string arr = null;
foreach(EmployeeInfo obj in arra)
{
arr += obj._Name + obj._Age + "<br />";
}
Response.Write(arr);
- ArrayList 的 IComparer排序
- 实现 ArrayList 的 IComparer排序
- 自定义排序 IComparer.Compare
- IComparable,IComparer排序实例
- 进行数据排序(Icomparer)
- [泛型]-使用IComparer子类的Sort排序方法
- C#中对对象的排序重写IComparer接口
- 对象的比较与排序:IComparable和IComparer接口
- 对象的比较与排序:IComparable和IComparer接口
- C# 使用IComparer自定义List类的排序方案
- C# 使用IComparer自定义List类的排序方案
- IComparer的简单使用
- IComparer<T>的运用
- ArrayList的简单排序
- java ArrayList的排序
- java ArrayList的排序
- ArrayList的排序
- Arraylist的对象排序
- Inno Setup使用教程(3)
- OPhone SDK1.5中跨进程通讯的4种方式
- windows7下如何在新窗口中打开vc6.0工程
- 搭建邮件服务器:postfix, courier, mysql ubuntu-9.10
- Windows XP桌面图标有颜色的处理方法
- ArrayList 的 IComparer排序
- 爱情是一个神话,流传于他人,你——并不一定能偶遇。
- C/C++指针
- linux 设置环境变量
- 【转】程序员你12点前睡觉了吗?
- 程序人生--一个程序员对学弟学妹建议
- CE5.0关于设备管理器的源码分析
- 搬家了!
- KVM虚拟机和QEMU(命令行选项)