如何在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()