2011-01-11 71 views
0

我需要通過字典循環..從正常的foreach..循環回來。什麼是完成這個最好的方法?向後迭代SortedDictionary的最佳方法是什麼?

更新

有是返回SortedDictionary我的外部對象。 「字符串」必須是唯一的,並引用相應的對象myObject。我想按字母順序將列表按字符串排序。

你會推薦什麼其他物體來達到這個目的?

+8

字典無序 - 沒有「向後」。你能否更詳細地解釋你實際試圖解決的問題? – Juliet 2011-01-11 01:21:17

回答

6

那麼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(); 
相關問題