using System.Collections.Generic;
/// <summary>
/// 对泛型的list进行排序
/// </summary>
public class EntityComparer : IComparer<Entity> //Entity为你定义的任意类
{
public EntityComparer ()
{
//
// TODO: Add constructor logic here
//
}
public enum CompareType
{
//下面的字段为Entity中的字段
field1,
field2,
field3
}
private CompareType type;
// 构造函数,根据type的值,判断按哪个字段排序
public EntityComparer (CompareType type)
{
this.type = type;
}
#region IComparer<Entity> 成员
public int Compare(Entityx, Entityy)
{
switch(this.type)
{
case CompareType.field1:
return x.field1.CompareTo(y.field1);
case CompareType.field2:
return x.field2.CompareTo(y.field2);
case CompareType.field3:
return x.field3.CompareTo(y.field3);
default:
return x.field3.CompareTo(y.field3);
}
}
#endregion
}
public class UserEntityComparer
{
main(string[] args)
{
List(Entity) listentity=new List(Entity);
//.......
//实例化一些Entity实体给list
listentity.sort(new EntityComparer (new EntityComparer .CompareType.feild1));
//ok,排序完成了
}
}