【问题标题】:How to get the keys of a Dictionary<string, object> into a sorted string[]如何将 Dictionary<string, object> 的键放入已排序的字符串 []
【发布时间】:2011-05-22 03:23:24
【问题描述】:

Dictionary&lt;string, object&gt; 的键放入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"]

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

【问题讨论】:

    标签: generics sorting dictionary c#-4.0


    【解决方案1】:

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

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

    效率稍高但不太流畅:

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

    【讨论】:

    • 非常感谢!我正在努力使用OrderBy() 方法
    • 还有更多的 LINQy 语法:(from k in d.Keys orderby k select k).ToArray() 如果您在使用 OrderBy() 时遇到问题。
    • @Gabe: 是的 - 虽然我建议人们学习这两种形式...这里的查询表达式与扩展方法形式 IMO 相比只是增加了噪音。
    猜你喜欢
    • 2014-01-10
    • 2012-05-13
    • 2014-10-22
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多