[英]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.