我有一個數組,用於存儲我想按列表排序的順序。跨多行代碼進行多種排序?
SortOrderArray: "Color", "Volume", "Weight"
所以我要訂購按顏色,體積,重量,然後
MyList.OrderBy(a=>a.Color).ThenBy(a=>a.Volume).ThenBy(a=>a.Weight).ToList();
我的列表中,這樣就不錯了。現在,我希望能寫,做基於中將sortOrder陣列我發這個排序的函數:
public List<row> GetSortedList(List<row> list, string[] sortOrder){
???
}
我無法弄清楚如何做到這一點無需編寫LINQ查詢的每個組合sortOrders(27個不同的查詢似乎是完成這個任務的最糟糕的方式,並且我犯了一個很小的錯誤的可能性很高)。我想是能夠根據每個3種選方法來只寫重新排序列表3個LINQ查詢,像這樣:
switch(sortOrder[0]){
Sort by the first sort method
}
switch(sortOrder[1]){
Sort by the second sort method
}
switch(sortOrder[2]){
Sort by the third sort method
}
但如果我嘗試做了上面的代碼,它只是訴諸它的每個時間,而不是在上面的分類之後進行分類。希望這是明確的,任何幫助將不勝感激。
這是一個聰明的解決方案,你知道Linq的訂單是否是「穩定的」?另外,「穩定排序」的正確術語是什麼(或者就是這樣) – sooprise
看起來'OrderBy'是穩定的:參見[這個問題](http://stackoverflow.com/questions/148074/is-的排序算法使用的逐網陣列排序法-A-穩定算法)。 [[穩定排序]](http://en.wikipedia.org/wiki/Sorting_algorithm#Stability)是常用術語。 – AShelly