C#封装的Sort()排序方法,必须实现IComparable接口才行,说的直白一点就是排序的时候需要知道是按什么排序的,通过比较什么排序的
public class TestSort : MonoBehaviour {
public List<MyClass> myList=new List<MyClass>();
void Start () {
myList.Add(new MyClass(2,"Two"));
myList.Add(new MyClass(3, "Three"));
myList.Add(new MyClass(1, "One"));
myList.Sort((x,y)=>x.Compare(x,y));
for (int i = 0; i < myList.Count; i++)
{
Debug.Log(myList[i].name);
}
}
}
public class MyClass:IComparer<MyClass>
{
public int id;
public string name;
public MyClass(int id,string name)
{
this.id = id;
this.name = name;
}
public int Compare(MyClass x, MyClass y)
{
return x.id.CompareTo(y.id);
}
}
最后输出的结果就是排序后的结果。
这里用了一个Lambda表达式,也可以写成myList.Sort(delegate(MyClass x,MyClass y){ return x.id.CompareTo(y.id) ;})