我在C#中有兩個列表。在c中排序列表#
public List<MyClass> objectList = new List<MyClass>(); // it is filled with MyClass objects
public List<int> numberList = new List<int>(); // it is filled with numbers
在numberList號碼的索引對應於對象在鏈表類索引:例如:鏈表類[0] = 01和numberList [0] = 3; 鏈表類[1] = O2和numberList [1] = 5 ......
objectList: |o1 | o2 | o3 | o4 | o5 | ...
numberList: 3 5 6 1 4 ...
我想在升序numberList分類編號,我想在鏈表類的objetcs與他們移動: 排序後:
objectList: |o4 | o1 | o5 | o2 | o3 | ...
numberList: 1 3 4 5 6 ...
在實際應用中,我需要這個在N皇后問題上實現爬山算法。在objectList中,我存儲棋盤上所有皇后的位置,並在numberList中存儲位置的計算啓發式。然後,我想對numberList進行排序,以便獲得啓發式值最低的位置。目標是轉移到啓發式值最低的位置。
更好地使用包裝對象將它們組合到同一個列表中:/ – Will
如果您的值已連接,爲什麼要將它們保存在單獨的列表中?無論如何,你的問題是什麼?什麼不起作用? – David
有一個[Array.Sort重載](https://msdn.microsoft.com/en-us/library/85y6y2d3(v = vs.110).aspx)將爲您執行此操作。所以你可以從列表中創建臨時數組,然後進行排序,然後將數組內容複製回來。據我所知,'List' API或LINQ中沒有相應的功能。 –