generics - 如何将 Dictionary<string, object> 的键转换为已排序的 string[]

标签 generics sorting dictionary c#-4.0

获取 Dictionary<string, object> 的 key 的最佳方式 (*) 是什么?进入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"]

(*) 我所说的“最佳方式”可能是:它应该易于编写和阅读,但仍应产生良好的性能

最佳答案

这取决于你所说的“最好”是什么意思 - 但我会使用:

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

效率稍高,但不太流畅:

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

关于generics - 如何将 Dictionary<string, object> 的键转换为已排序的 string[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386313/

相关文章:

java - UML、Java 和 ArrayList

java - Jackson 和泛型类型引用

Javascript数组排序速度受字符串长度影响吗?

c# - 根据给定的顺序在 C# 中重新排列列表

arrays - Swift 数组循环一次,写很多

generics - 使用泛型时遇到编译器错误

arrays - 函数数组<可选<T>> -> 可选<数组<T>>

algorithm - 冒泡排序和 gnome 排序的区别

c++ - boost::shared_ptr、std::map 和 valgrind - 我有内存泄漏吗?

python - 字典类型错误: unhashable type:set