如何在C#中以相反的顺序(从最后到第一个)迭代字典?

我有一个字典并在其上添加了一些元素。例如,

Dictionary d = new Dictionary(); d.Add("Content","Level0"); d.Add("gdlh","Level1"); d.Add("shows","Level2"); d.Add("ytye","Level0"); 

在C#中,Dictionary使元素保持自然顺序。但我现在想要将这些值从最后一个迭代到第一个(即,逆序).i意思是,

首先,我想阅读ytye然后显示,gdlh,最后是内容。

请指导我摆脱这个问题……

只需使用Linq扩展方法Reverse

例如

 foreach( var item in d.Reverse()) { ... } 

使用LINQ Reverse,但请注意不会反转

 var reversed = d.Reverse(); 

但请注意,这不是SortedDictionary ,因此首先不一定保证顺序。 也许你想要OrderByDescending呢?

也许OrderByDescending上的OrderByDescending 。 像这样:

 d.OrderByDescending (x =>x.Key) 

像这样的Foreach

 foreach (var element in d.OrderByDescending (x =>x.Key)) { } 

它可用于Linq: d.Reverse()