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) ;})