2010-08-16 300 views
4

有沒有什麼方法可以按字母順序對集合進行排序(使用C#2.0?)。按字母順序對集合進行排序

謝謝

+1

查看http://stackoverflow.com/questions/188141/c-list-orderby-alphabetical-order – 2010-08-16 16:01:15

+5

@多米尼克這個問題是關於3.5,這意味着Linq。 – Will 2010-08-16 16:03:01

+0

@Dominic:我看到Q和大多數A使用C#3 – 2010-08-16 16:03:06

回答

11

我們在談什麼樣的收藏? A List<T>ICollection<T>?陣列?集合中存儲的類型是什麼?

假設List<string>,你可以這樣做:

List<string> str = new List<string>(); 
// add strings to str 

str.Sort(StringComparer.CurrentCulture); 
+0

重構! (還有5個去..) – 2010-08-16 16:24:10

+0

我不喜歡在一般情況下使用'var' – thecoop 2010-08-16 16:25:23

+0

@thecoop除非上下文不容易看到,否則var是真棒 – sparkyShorts 2017-06-08 20:34:37

4

可以使用SortedList

+0

Gah,給我一分鐘。 – Will 2010-08-16 16:03:46

1
List<string> stringList = new List<string>(theCollection); 
stringList.Sort(); 

List<string>實現ICollection<string>,所以你仍然有所有你轉換到一個列表即使集合爲中心的功能。

3

Array.Sort怎麼樣?即使您沒有提供自定義比較,默認情況下它會按字母順序排列:

var array = new string[] { "d", "b" }; 

Array.Sort(array); // b, d