方法一:
先定义一个类,并继承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;
else
result = 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);
}
}