【问题标题】:What is the best way to iterate over a SortedDictionary backwards?向后迭代 SortedDictionary 的最佳方法是什么?
【发布时间】:2011-01-11 01:18:43
【问题描述】:

我需要遍历字典.. 从正常的 foreach.. 循环向后。实现这一目标的最佳方法是什么?

更新

有一个外部对象将 SortedDictionary 返回给我。 “字符串”必须是唯一的,并且引用一个对应的对象 myObject。我想按“字符串”的字母顺序对列表进行反向排序。

您会推荐什么其他对象来实现此目的?

【问题讨论】:

  • 字典是无序的——没有“向后”。你能更详细地解释一下你真正想要解决的问题吗?
  • @Juliet :添加它作为答案,我会投票赞成
  • 我进行了编辑,我想以最有效的方式反转 sortedDictionary。

标签: c# arrays dictionary


【解决方案1】:

Dictionary<K,V> 类在内部使用哈希表来存储其键,因此没有隐含的顺序。您添加密钥的顺序不会被保留,因此实际上没有任何有意义的方法可以“反转”它。

但话虽如此,如果您有一个有序集合,例如 List 或 SortedDictionary,您可以使用 LINQ Reverse 方法来反转任何序列。

更新

为了响应您关于拥有 SortedDictionary 的更新,请参阅我上面链接到的 Enumerable.Reverse 方法。您可以反转字典(作为 KeyValuePair 的集合或其 Keys 属性作为字符串的集合)。

SortedDictionary<string,object> dictionary = blah;
var keyValuePairs = dictionary.Reverse();
var keys = dictionary.Keys.Reverse();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-14
    • 2012-05-30
    • 2016-05-05
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    相关资源
    最近更新 更多