[C#] List如何多種排序規則?多條件排序? 使用LINQ排序語法(OrderBy、OrderByDescending、ThenBy、ThenByDescending)

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

設定第二個以後的排序條件,此排序條件為遞減排序。

其他參考:參考1 ,官方參考

 


與每個人,一起分享所學到,所用到的,

若有錯誤,請您不吝指教,謝謝大家。