c 自定義排序

2021-09-27 05:55:40 字數 1613 閱讀 3334

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 方法時將實現的排序介面作為引數傳入即可...