class program
console.writeline();
console.writeline("source tolist value:");
var list = arr.tolist();
for (int i = 0; i < 10; i++)
console.writeline();
console.writeline("source tolist sort value:");
list.sort();
for (int i = 0; i < 10; i++)
console.writeline();
console.writeline("source tolist compare value:");
list.sort(new classacomparer());//簡單實現降序
//等同於 list.sort((x,y)=>-x.compareto(y));//實現降序
for (int i = 0; i < 10; i++)
console.writeline();
console.writeline("priority source value:");
//在一些常用場景經常會有優先順序的概念,針對有優先順序的排序,可以參照如下:
//tuple,item1的優先順序大於item2的優先順序
list> list_priority = new list>(10);
for (int i = 0; i < 10; i++)
,y:}}", xy.item1, xy.item2));
}console.writeline();
console.writeline("priority source sort value:");
list_priority.sort((x, y) =>
);for (int i = 0; i < 10; i++)
,y:}}", list_priority[i].item1, list_priority[i].item2));
}console.readkey();
//其實還有一些場景,會用到權重的概念,尤其是針對一些客戶定級別時候,這個時候的排序,建議權重高的,
//排序時候去平方,或者倍乘等方式,涉及到權重的,都是玄之又玄,出來的結果大致滿意就很棒了。。。}}
class classa:icomparable//定義在物件上的自定義排序,這裡引用泛型,不需型別轉換
public int x
public int y
public string xy
,y:}}", x, y);//c#列印大括號,左大括號}}}
public int compareto(classa other)
}class classacomparer : icomparer//單獨定義的排序規則
}
public class compare: iequalitycomparer
public bool equals(t x, t y)
public int gethashcode(t obj)
}
C 自定義排序
include include include using namespace std bool compare1 const int a,const int b bool compare2 const int a,const int b bool compare3 const int a,cons...
C 自定義類排序
1 宣告乙個類 人物類 public class person 2 宣告乙個繼承了介面icomparer的類 比較人物類例項大小,實現介面icomparer public class personcomparer icomparer return 0 3 main函式,建立乙個list,並使用剛建立...
C 自定義型別排序
在編寫程式處理資料時經常需要對自己組織的資料進行排序,有時還是不同形式的排序,在c 中可以自定義結構體重載bool operator函式,也可以自己寫int compare 而在c 中自定義排序,就需要對類的icomparer 介面進行實現,排序時呼叫sort 方法時將實現的排序介面作為引數傳入即可...