list sort()委托排序

来源:互联网 发布:nginx默认安装路径 编辑:程序博客网 时间:2024/05/22 00:49

自定义对象User ,给List<User> 集合按年龄大小排序。


[csharp] view plain copy
 print?
  1. public class User  
  2.     {  
  3.         public User(int age, string name)  
  4.         {  
  5.             Age = age;  
  6.             Name = name;  
  7.         }  
  8.         public int Age { getset; }  
  9.         public string Name { getset; }  
  10.     }  

这里我们需要一个自定义的比较器


[csharp] view plain copy
 print?
  1. public static int CompareByAge(User x, User y)//从大到小排序器  
  2.        {  
  3.            if (x == null)  
  4.            {  
  5.                if (y == null)  
  6.                {  
  7.                    return 0;  
  8.                }  
  9.   
  10.                return 1;  
  11.   
  12.            }  
  13.            if (y == null)  
  14.            {  
  15.                return -1;  
  16.            }  
  17.            int retval = y.Age.CompareTo(x.Age);  
  18.            return retval;  
  19.        }  

然后就可以使用List<T>.sort(CompareByAge)来排序了


[csharp] view plain copy
 print?
  1. List<User> list = new List<User>  
  2.           {  
  3.               new User(14,"aa"),  
  4.           new User(17,"bb"),  
  5.           new  User(12,"cc"),new User(33,"dd")  
  6.           };  
  7.           foreach (var item in list)  
  8.           {  
  9.               Console.WriteLine(item.Name + ":" + item.Age);  
  10.           }  
  11.           Console.WriteLine("排序后");  
  12.           list.Sort(CompareByAge);  
  13.           foreach (var item in list)  
  14.           {  
  15.               Console.WriteLine(item.Name+":"+item.Age);  
  16.           }  
  17.   
  18.           Console.ReadKey();  

0 0
原创粉丝点击