List<int> lst = new List<int>();
lst.Add();
lst.Add();
lst.Add();
lst.Add();
lst.Add();
lst.Add(); lst.Sort((m1, m2) =>
{
return m1 > m2 ? : -;
}); 如上这段排序代码,在VS2015控制台程序下运行,排序完全正确。
然而放在UNITY的Start()函数中运行,排序只排了前两个元素。
原因竟然是UNTIY 的BUG:排序函数必须返回 1,0,-1三种情况,只返回两种情况则排序不正确。
然而普通C#控制台程序是没有问题的,可见UNITY有多坑。
保证UNITY上排序正确的写法如下:
void Start () {
List<int> lst = new List<int>();
lst.Add();
lst.Add();
lst.Add();
lst.Add();
lst.Add();
lst.Add(); lst.Sort((m1, m2) =>
{
if (m1 > m2)
return ;
if (m1 < m2)
return -;
return ;
//return m1.CompareTo(m2); //或者这样写
});
}