记录一下C# LIst的多权重排序,不多说,上代码,Unity下挂空物体运行即可:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LIstSortTest : MonoBehaviour
{
public
// Start is called before the first frame update
void Start()
{
TestSort();
}
// Update is called once per frame
void Update()
{
}
public void TestSort()
{
List<TestData> testDatas = new List<TestData>();
testDatas.Add(new TestData() { age = 5, height = 160,weight =120 });
testDatas.Add(new TestData() { age = 5, height = 180, weight = 110 });
testDatas.Add(new TestData() { age = 5, height = 170, weight = 90 });
testDatas.Add(new TestData() { age = 8, height = 150, weight = 160 });
testDatas.Add(new TestData() { age = 8, height = 150, weight = 140 });
testDatas.Add(new TestData() { age = 8, height = 150, weight = 180 });
testDatas.Add(new TestData() { age = 6, height = 190, weight = 180 });
testDatas.Add(new TestData() { age = 10, height = 140, weight = 140 });
testDatas.Sort((x, y) =>
{
return x.age != y.age ? x.age.CompareTo(y.age) :
x.height != y.height ? x.height.CompareTo(y.height) :
x.weight.CompareTo(y.weight);
});
foreach(var item in testDatas)
{
Debug.LogFormat(": {0}/{1}/{2}\n", item.age, item.height, item.weight);
}
}
}
public class TestData
{
public int age;
public int height;
public int weight;
}