[100分]自定义数据类型的范型排序小弟我遇到这样一个问题:我定义了一个类 如C# code public Class Man(){p
[100分]自定义数据类型的范型排序
小弟我遇到这样一个问题:
我定义了一个类 如
C# code public Class Man(){public Man(int Age){...}public int Age;//年龄属性}
下面有添加了n个Man的范型
C# codeList<Man> men = new List<Man>();men.Add(new Man(5));men.Add(new Man(6));men.Add(new Man(7));
我想通过Age 对这个men范型进行排序 返回最大的一个年龄的men的下标
C# code public int Compare(object manA, object Manb) { if ((Man)manA.Age> (Man)manB.Age) { return 1; }else if ((Man)manA.Age== (Man)manB.Age) return 0; else return -1; }
可能会有这样一个函数
问题是:(1)这样一个函数是不是要写在一个类里面,请补全代码
(2)这个接口或者说方法如何调用
请指教
[解决办法]我想通过Age 对这个men范型进行排序 返回最大的一个年龄的men的下标 ...
都已经排序了..还最大下标。0就是最大的。
public class CompareMan: IComparer<Man>
{
public int Compare(Man manA, Man Manb)
{
return manA.Age.CompareTo(manB.Age);//从小到达
//从大道小 return -manA.Age.CompareTo(manB.Age);
}
}
List<Man> men = new List<Man>();
men.Add(new Man(5));
men.Add(new Man(6));
men.Add(new Man(7));
men.Sort(new CompareMan());
[解决办法] public class Man
{
public Man(int age) {
_age = age;
}
int _age = 0;
public int Age {
get { return _age; }
set { _age = value; }
}
}
public class CompareMan : IComparer<Man>
{
public int Compare(Man manA, Man Manb)
{
return -manA.Age.CompareTo(Manb.Age);
}
}
调用代码:
List<Man> men = new List<Man>();
men.Add(new Man(5));
men.Add(new Man(60));
men.Add(new Man(7));
men.Sort(new CompareMan());
men[0]就是岁数最大的。