向后迭代SortedDictionary的最佳方法是什么?

时间:2011-01-11 01:18:43

标签: c# arrays dictionary

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

更新

有一个外部对象将SortedDictionary返回给我。 “string”必须是唯一的,并引用相应的对象myObject。我想按字母方式按“字符串”排序列表......反过来。

您建议使用什么其他物品来达到此目的?

1 个答案:

答案 0 :(得分:7)

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();