C#_ArraySort 排序
C# 排序
public class BaseData : MonoBehaviour {
class Player {
public int id;
public string name;
public int age;
public int score;
public Player() {
}
public override string ToString() {
return "id:" + id + "|name:" + name + "|age:" + age + "|score:" + score + "\n";
}
}
class PlayerSort : IComparer<Player> { // -1 排在前 1 排在后
public int Compare(Player x, Player y) {
if (x.age > y.age) {
return -1; // 年龄大排在前
} else if (x.age < y.age) {
return 1; // 年龄小排在后
}
if (x.score > y.score) {
return -1; // 分数大排在前
} else if (x.score < y.score) {
return 1; // 分数小排在后
}
return x.id.CompareTo(y.id); // 否则 id 小的排在前
}
}
void Start() {
List<Player> myNums = new List<Player> {
new Player() {id = 2, name = "WWH", age = 11, score = 500},
new Player() {id = 1, name = "WH", age = 31, score = 420},
new Player() {id = 4, name = "HH", age = 25, score = 214},
new Player() {id = 3, name = "CC", age = 25, score = 214},
new Player() {id = 5, name = "HHW", age = 48, score = 311},
};
myNums.Sort(new PlayerSort());
myNums.ForEach(num => Debug.Log(num.ToString() + "\n"));
}
void Update() {
}
}

浙公网安备 33010602011771号