[C#] List 如何排序?

  • 19853
  • 0
  • C#
  • 2019-09-10

[C#] List <T> 如何排序?

簡單筆記以下兩種方法

方法一:

List<string> listStr = new List<string>(); //ex: a,b,c
liststr.Sort((x, y) => x.CompareTo(y)); //升冪:a,b,c
liststr.Sort((x, y) => -x.CompareTo(y));//降冪:c,b,a

方法二:

List<int> listNum = new List<int>(); // ex: 2,1,3
listNum.Sort();   //out: 1,2,3
listNum.Reverse(); //out: 3,2,1

List 排序不會只單用string 或int !!!! 因此以下舉例為運用結合Class & List

class People {
	public string name=string.Empty;
	public int age=0;
}


void main (){
	List<People> listStr = new List<People>();        //input : dog,cat,pig (以name 排序)
	liststr.Sort((x, y) => x.name.CompareTo(y.name)); //output: cat,dog,pig
	liststr.Sort((x, y) => -x.name.CompareTo(y.name));//output: pig,dog,cat

	List<People> listStr = new List<People>();        //input : 4,7,3  (以age排序)
	liststr.Sort((x, y) => x.age.CompareTo(y.age));   //output: 3,4,7
	liststr.Sort((x, y) => -x.age.CompareTo(y.age));  //output: 7,4,3
}

詳見可見官網: https://docs.microsoft.com/zh-tw/dotnet/api/system.collections.generic.list-1.sort?view=netframework-4.8

 


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

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