[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
}
與每個人,一起分享所學到,所用到的,
若有錯誤,請您不吝指教,謝謝大家。