2010-12-08 2 views
2

Dictionary<string, object>のキーをstring[](アルファベット順にソート)にするにはどのような方法がありますか?Dictionary <string、object>のキーをソートされた文字列にするには

例:

var d = new Dictionary<string, int>(); 
d.Add("b", 1); 
d.Add("f", 2); 
d.Add("a", 3); 

string[] sortedKeys = ...; 
// sortedKeys should contain ["a", "b", "f"] 

(*)私はおそらく「最良の方法」で何を意味するか:読み書きが容易であるべきで、それでも良いパフォーマンスをもたらすべきである

答えて

5

それ

string[] sortedKeys = d.Keys.OrderBy(x => x).ToArray(); 

もう少し効率的なあまり流暢:

が、私は使用したい - あなたは「ベスト」によって何を意味するかによって決まります
+0

ありがとうございました!私は 'OrderBy()'メソッドで苦労していました – M4N

+0

'OrderBy()'に問題がある場合は、より多くのLINQy構文があります: '(d.Keys orderby k select k).ToArray()'。 – Gabe

+0

@Gabe:True - 私は両方の形式を学ぶようにアドバイスしますが、ここでクエリ式は拡張メソッド形式IMOと比較してノイズを追加するだけです。 –

関連する問題