List排序的两种方法

来源:互联网 发布:underscore.js源码 编辑:程序博客网 时间:2024/05/29 05:57

方法一:

先定义一个类,并继承Iconparable接口,在类里面对CompareTo方法进行重写。

public class sort_test:IComparable{public int Id { get; set; }public string Name { get; set; }public int CompareTo(object obj) {int result;try{sort_test info = obj as sort_test;//升序排列if (this.Id > info.Id){result = -1;}else if(this.Id < info.Id)result = 1;elseresult = 0;return result;}catch (Exception ex) { throw new Exception(ex.Message); }}}
然后引用下面的方法即可

void Start(){List<sort_test> infoList = new List<sort_test>();infoList.Add(new sort_test() { Id = 1, Name = "苍老师" });infoList.Add(new sort_test() { Id = 3, Name = "小泽老师" });infoList.Add(new sort_test() { Id = 2, Name = "波多老师" });infoList.Sort();foreach (var item in infoList){Log.E("{0}:{1}",item.Id,item.Name);}}

方法二:使用匿名委托,sort_test不需要继承Icomparable

void Start(){List<sort_test> infoList = new List<sort_test>();infoList.Add(new sort_test() { Id = 1, Name = "苍老师" });infoList.Add(new sort_test() { Id = 3, Name = "小泽老师" });infoList.Add(new sort_test() { Id = 2, Name = "波多老师" });infoList.Sort(delegate(sort_test x, sort_test y)              {if(x.Id > y.Id) return -1;if(x.Id < y.Id) return 1;return 0;});foreach (var item in infoList){Log.E("{0}:{1}",item.Id,item.Name);}}



1 0