您的位置:首页 > 移动开发 > Unity3D

List排序的两种方法

2016-01-06 15:09 357 查看
方法一:

先定义一个类,并继承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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  List Sort unity 代码