使用List 泛型,怎麼排序

2022-03-20 01:06:55 字數 1233 閱讀 6109

在工作中經常會遇到物件陣列根據某個屬性進行排序的問題。這裡介紹乙個方法。

以汽車為例: public class car:

set

} private string type;

public string type

set

} }

car cars;現在需要排序,首先我們想根據weight進行排序,大家自然會想到冒泡演算法。不過這個肯定不是最好的,這裡提供乙個簡便的方法。

我們將類car實現介面icomparable使其能夠使用array.sort()。

**如下:

public class car:icomparable

set

} private string type;

public string type

set

} icomparable 成員#region icomparable成員

public int

compareto(car other)

#endregion

}實現該方法以後我們就可以直接使用如下**來對cars進行排序了。

car arr = new car ;

array.sort(arr);但是隨著專案的發展的發展我們會迎來新的問題,我們現在又需要根據type排序了,怎麼辦呢?

不用擔心我們只要使用乙個最簡單的adapter模式就能解決這個問題

下面我們來建立這個介面卡:

public class comparacaradapter : icomparer

#endregion

}然後如此呼叫:

array.sort(arr,new comparacaradapter());但是這樣如果屬性很多,會產生很多的類,怎麼辦呢。那麼利用反射吧。將comparacaradapter改造為:

public class comparacaradapter : icomparer

icomparer 成員#region icomparer成員

public int

compare(car x, car y)

else

throw new notsupportedexception();

} #endregion

} 呼叫 array.sort(arr, new comparacaradapter("weight"));ok搞定,應該足夠靈活了吧。

C 泛型 使用泛型List

一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...

C 泛型 使用泛型List

一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...

list泛型排序的方法

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