List提供了.sort()函数进行排序
如果T是基本类型的话,.sort()是可以直接使用的,比如List、List等
如果是我们自己定义的Class的话,我们就必须自己定义,这时我们需要:IComparer接口中的Compare函数
List.sort()有四种形式:
1. .sort()
在List中的元素对象必须继承于IComparer,而且实现了 CompareTo()方法,基本上所有的值类型都有,也包括string等
2. .sort(IComparer<T>)
基于自定义的类实现
3. .sort(IComparison<T>)
4. .sort(int32,int32,IComparer<T>)
是第二种形式的扩展,可以规定排序范围
//定义一个类
public class product//自定义类,设置属性name和age
{
public string name
{
get;
}
public int age
{
get;
}
public product(string Name,int Age)
{
this.name = Name;
this.age = Age;
}
}
//定义排序方式
class myComparer:IComparer<product>/*实现 IComparer<T> 接口中的 Compare 方法,
在使用Sort排序时会根据Compare方法体的规定进行排序*/
{
public int Compare(product x, product y)
{
return (x.age.CompareTo(y.age));//(-x.age.CompareTo(y.age)降序
}
}
//主函数
class Program
{
static void Main(string[] args)
{
List<product> products=new List<product>();
products.Add(new product("小红",16));
products.Add(new product("小明",11));
products.Add(new product("小兰",15));
products.Sort(new myComparer());//函数会将list中的每个值进行两两比较,默认是升序,降序可以在方法体前面加上一个负号
foreach (var VARIABLE in products)
{
Console.WriteLine(VARIABLE.name);
}
Console.ReadKey();
}
}
转载自:https://blog.csdn.net/skysword2/article/details/53064714