簡體   English   中英

自定義排序功能不起作用

[英]Custom Sort function does not work

我已經為列表實現了自定義排序功能。 但是在調用它之后,列表的順序似乎並沒有改變。

我想找到來自所有數字組合的最大數字。 例如,給定540、9,它應該輸出9540而不是5409。因此,比較功能可以完成此工作。

    public void LargestPossibleNumberCombination(List<int> nums) {
        nums.Sort(CustomCompare);

    }
    public int CustomCompare(int x, int y)
    {
        string a = x +""+ y;
        string b = y + "" + x;
        return a.CompareTo(b) > 0 ? 0 : 1;
    }

x小於y (<0), y小於x (> 0)和等於(0)時,您需要返回一個值。

但是,您可以使用lambda比較使這種排序更為緊湊:

nums.Sort((x, y) => string.Compare(string.Format("{0}{1}", y, x), 
                                   string.Format("{0}{1}", x, y)));

如果要在排序后加入列表:

var result = string.Join("", nums);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM