Как получить ключи словаря <string, object> в отсортированную строку [] - PullRequest
2 голосов
/ 08 декабря 2010

Каков наилучший способ (*) получить ключи Dictionary<string, object> в string[] (отсортированные по алфавиту)?

Пример:

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"]

(*) то, что я имею в виду под «лучшим способом», вероятно: должно быть легко писать и читать, но все равно должно приводить к хорошей производительности

1 Ответ

5 голосов
/ 08 декабря 2010

Это зависит от того, что вы подразумеваете под «лучшим», но я бы использовал:

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

Чуть более эффективно, но менее свободно:

string[] sortedKeys = d.Keys.ToArray();
Array.Sort(sortedKeys);
...