3個對泛型 List 排序的方法

2021-05-10 06:03:03 字數 1464 閱讀 9243

方式1:

list

<

softdrink

>

list

=manager.softdrink.listsoftdrink();

list.sort(

newmycomp().compare);

list.sort(

newmycompdesc().compare);

public

class

mycomp : icomparer

<

softdrink

>

}public

class

mycompdesc : icomparer

<

softdrink

>

}

方式2:

list.sort(

newcomparison

<

softdrink

>

(

delegate

(softdrink x, softdrink y) ));

list.sort(

newcomparison

<

softdrink

>

(

delegate

(softdrink x, softdrink y) ));

方式3: 使用 dynamic reflection library

dynamiccomparer

<

softdrink

>

comparer

=new

dynamiccomparer

<

softdrink

>("

serialid");

dynamiccomparer

<

softdrink

>

comparerdesc

=new

dynamiccomparer

<

softdrink

>("

serialid desc");

list.sort(comparer);

list.sort(comparerdesc);

在list有90筆 softdrink的情況下,對list正排倒排連續做1000次

方法1: 0.424 秒

方法2: 0.393 秒

方法3: 1.859 秒

方法3: 0.527 秒 (如果new comparer()放在迴圈外)

不要覺得 dynamic reflection library 慢就沒用呀,他能容易的對多屬性做排序,而速度差異也不大

比較糟的是,如果我的物件裡有子物件,我要對依子物件的屬性做排序,他就辦不到了。

list泛型排序的方法

如果這樣定義 listlist newlist 那麼只需要用list.sort 即可。就會按照英文單詞進行排序。但是如果這個string是如下類呢?public class dto public int id public string name 這樣定義 listlist newlist 想按照n...

泛型的3種排序方法

泛型的3種排序方法之三 使用icomparer子類的sort排序方法 收藏 泛型的排序有3種方法,分別是 1 list.sort 只能在集合元素實現了icomparable泛型介面時使用 2 list.sort comparison comparison是乙個方法委託,它帶有2個引數t,返回int型...

List泛型集合物件排序

本文的重點主要是解決 list物件集合的排序功能。一 list.sort 方法 msdn對這個無參sort 方法的介紹 使用預設比較器對整個list中的元素進行排序。1.1.對於數字型別的呼叫 呼叫結果 為公升序,無法滿足降序。示例 1.2.對於字串型別的呼叫 呼叫結果 把值解析成拼音字母,按照首個...