2012-09-20 213 views
0

我有一個類型爲winningCombo的列表,winsCombos,它有一個類型爲spin的類。像這樣:在類中對列表進行排序

public List<winningCombo> winningCombos; 

    public class winningCombo 
    { 
     public List<spin> winningSymbols; 
     public double cumulativeValue; 
    } 


    public class spin 
    { 
     public string Name; 
     public double Value; 
    } 

什麼是每個類winningCombo內的雙cumaltiveValue的價值,以便列表winningCombos排序的有效途徑?其中一些具有相同的價值。所以victoryCombos [0]應該是雙重賠償價值的最小值並且繼續前進。感謝您的任何想法!

+1

您的問題缺少您認爲不「高效」的示例代碼。也請評論你爲什麼認爲經常與比較器排序不適合你。 –

+0

你有什麼嘗試?你有沒有做過關於如何在C#中對一個集合進行排序的研究?這不完全是一個晦澀的主題。 – Servy

回答

4

這可以通過地方被List<T>.Sort排序,像這樣:

winningCombos.Sort((l, r) => l.cumulativeValue.CompareTo(r.cumulativeValue)); 

你也可以使用LINQ找回排序結果:

var sorted = winningCombos.OrderBy(wc => wc.cumulativeValue); 

(注意後者不改變原收集,但返回一個新的,排序的IEnumerable<winningCombo>。)