C 中List的排序用法 Sort

2021-06-19 03:01:42 字數 2090 閱讀 9101

要對自定義類陣列或list進行排序,譬如:

listuserlist;

arraylist arraylist;

最重要的是:繼承icomparer介面,實現int icomparer.compare(t t1, t t2)方法。

**如下:

/** /// 繼承icomparer介面,實現同一自定義型別 物件比較

///

/// t為泛用型別

public class reverser: icomparer...

/** /// 建構函式

///

/// 進行比較的類名稱

/// 進行比較物件的屬性名稱

/// 比較方向(公升序/降序)

public reverser(string classname, string name, reverserinfo.direction direction) ...

catch (exception e)...

}/** /// 建構函式

///

/// 進行比較的型別的例項

/// 進行比較物件的屬性名稱

/// 比較方向(公升序/降序)

public reverser(t t, string name, reverserinfo.direction direction)

...

//必須!實現icomparer的比較方法。

int icomparer.compare(t t1, t t2)

...//交換運算元

private void swap(ref object x, ref object y)

...}

/** /// 物件比較時使用的資訊類

///

public struct reverserinfo

...;

public enum target

...;

public string name;

public direction direction;

public target target;

}

上面主要是運用了 c#的反射 和 framework中的排序演算法。

像上面那樣實現介面後,就可以使用list進行 公升序/降序 排序了。

測試**如下:

using system;

using system.collections.generic;

using system.collections;

using system.reflection;

using system.text;

namespace list_t_sorttest_u_2

... public string name

...set ...

}public int age

...set ...

}public string address

...set ...}}

/** /// 主程式類(啟動類),測試用

///

class program

...console.writeline();

reverserreverser = new reverser(user.gettype(), "name", reverserinfo.direction.desc);

userlist.sort(reverser);

console.writeline();

foreach (user u in userlist)

...console.writeline();

reverser = new reverser(user.gettype(), "age", reverserinfo.direction.asc);

userlist.sort(reverser);

console.writeline();

foreach (user u in userlist)

...console.read();}}

#endregion

}

List排序 Sort的用法

目錄 1.簡要說明 2.官方檔案 3.舉例說明 3.1.預設排序sort 3.2sort icomparer comparer 3.3sort comparison comparison 3.4sort int index,int count,icomparer comparer 4.總結 泛型li...

C 中的sort排序用法

c中的qsort 採用的是快排演算法,c 的sort 則是改進的快排演算法。兩者的時間複雜度都是n logn 但是實際應用中,sort 一般要快些,建議使用sort stl中就自帶了排序函式sort對給定區間所有元素進行排序 要使用此函式只需用 include sort即可使用,語法描述為 sort...

C 中的sort 排序函式用法

原文章 中的sort 排序函式用法m p 10183210.html sort first pointer,first pointer n,cmp 該函式可以給陣列,或者鍊錶list 向量排序。實現原理 sort並不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和推排序。系...