List<T> 如何多種排序規則?多條件排序? 使用LINQ排序語法(OrderBy、OrderByDescending、ThenBy、ThenByDescending)
C# 排序的時候可以使用LINQ達到多條件的排序方法.
以下為直接舉例:
class Animal {
public string name=string.Empty;
public int age=0;
}
void main (){
List<Animal> listAnimal = new List<Animal>{
new Animal {name=dog ,age=4},
new Animal {name=cat ,age=7},
new Animal {name=pig ,age=3},
new Animal {name=horse ,age=4},
new Animal {name=sheep ,age=7},
};
//想先用 age排序(大->小) ,再用name 排序(A->Z)
listAnimal=listAnimal.OrderByDescending(x=>x.age).ThenBy(x=>x.name).ToList();
//結果:
//name=cat ,age=7
//name=sheep ,age=7
//name=dog ,age=4
//name=horse ,age=4
//name=pig ,age=3
}
以下為複製參考1的說明
OrderBy
設定第一個排序條件,而且此排序條件為遞增排序。
OrderByDescending
設定第一個排序條件,而且此排序條件為遞減排序。
ThenBy
設定第二個以後的排序條件,此排序條件為遞增排序。
ThenByDescending
設定第二個以後的排序條件,此排序條件為遞減排序。
與每個人,一起分享所學到,所用到的,
若有錯誤,請您不吝指教,謝謝大家。