我有一個陣列,其中包含物件“人”的專案

我需要讓特殊的人在上面(按 ID 排序的人)和下面的非特殊人(按字母順序排序的人)。它應該如下所示:

有沒有一種方法可以像這樣對它進行排序,而不必拆分串列,單獨排序,然后將其重新合并在一起?
uj5u.com熱心網友回復:
首先你可以OrderBy通過Special(注意false < true)然后你可以像這樣使用條件ThenBy:
var result = persons
.OrderBy(person => person.Special != "Yes")
.ThenBy(person => person.Special == "Yes" ? person.Id : 0)
.ThenBy(person => person.Special == "Yes" ? "" : person.Name);
uj5u.com熱心網友回復:
非 linq 版本:
list.Sort((a, b) =>
{
if (a.Special != b.Special)
{
return a.Special ? -1 : 1;
}
return a.Name.CompareTo(b.Name);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/444937.html
