C 泛型 無引數的Sort排序方法

2021-09-08 08:42:26 字數 1092 閱讀 8452

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

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

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

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

這裡介紹第一種方法:

首先定義乙個類,用作集合的元素,並實現icomparable泛型介面,預設按年齡排序

using system;

using system.collections.generic;

///

/// 學生類, 實現icomparable泛型介面,按年齡排序

///

public class student : icomparable

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()

#region icomparable成員

public int compareto(student other)

#endregion

}下面就開始排序了:

using system;

using system.collections.generic;

public class test

); // 這句等效於下面2句

/*foreach( student item in arr)

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

}

C 泛型 使用委託的Sort排序方法

泛型的排序有3種方法,分別是 1 list.sort 只能在集合元素實現了icomparable泛型介面時使用 2 list.sort comparison comparison是乙個方法委託,它帶有2個引數t,返回int型別,可以靈活指定如何排序,但是需要編碼時手動指定如何排序 3 list.so...

泛型排序(C )

一般講排序演算法的文章,為了方便說明演算法本身,待排序元素的型別一般使用整型。還有些文章講泛型排序,待排序元素可以是任意型別,但對於待排序序列,卻一般只支援某一種儲存形式,比如定長陣列,比如std vector,但不能同時支援它們。那麼我們有沒有辦法使用泛型技術即支援任意元素型別又支援大多數常用的序...

C 泛型型別 泛型方法

泛型會宣告型別引數 泛型的消費者需要提供型別引數來把佔位符型別填充 public class stack var stack newstack int stack.push 2 stack.push 3 int x stack.pop 2int y stack.pop 3stack open typ...