C sort 委託使用

2021-07-02 19:37:37 字數 1112 閱讀 1983

泛型的排序有3種方法,分別是:

1、list.sort(),只能在集合元素實現了icomparable泛型介面時使用

2、list.sort(comparison),comparison是乙個方法委託,它帶有2個引數t,返回int型別,可以靈活指定如何排序,但是需要編碼時手動指定如何排序;

3、list.sort(icomparer),使用實現了icomparer介面的類給集合排序,可以靈活指定如何排序,但是需預先定義好類的排序方法

這裡介紹第二種方法:

首先定義乙個類,用作集合的元素

using system;

using system.collections.generic;

///

/// 學生類

///

public class student

set

} private int age;

// 年齡

public int age

set

} private string grade;

// 年級

public string grade

set

} //建構函式

public student(string name, int age, string grade)

public override string tostring() }

下面就開始排序了:

using system;

using system.collections.generic;

public class test

); 

// 迴圈顯示集合裡的元素

foreach( student item in arr)

console.writeline(item.tostring());

// 呼叫sort方法,傳入乙個匿名方法,實現按姓名排序

arr.sort(delegate(student x, student y) ); 

// 迴圈顯示集合裡的元素

foreach( student item in arr)

console.writeline(item.tostring()); }}

C sort函式使用總結

標頭檔案 algorithm 對於 整數 字元 陣列進行比較時,可直接通過sort a,a n 或sort a.begin a.end 進行排序,預設公升序排列,須要高速實現降序時,有三種方案 1.反轉公升序陣列 reserve函式 2.反向迭代sort a.rend a.rbegin 3.借助c ...

c sort函式的使用

需要標頭檔案 語法描述 sort begin,end,cmp cmp引數可以沒有,如果沒有預設非降序排序。1.以int為例的基本資料型別的sort使用 include include includeusing namespace std int main 預設公升序 sort a,a 5 for i...

C sort排序的使用

sort的兩種函式形式 void sort randomaccessiterator first,randomaccessiterator last void sort randomaccessiterator first,randomaccessiterator last,compare comp...