11

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

Dictionary<string, string> d = new Dictionary<string, string>();

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

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

首先我想阅读 ytye,然后是节目、gdlh,最后是内容。

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

4

4 回答 4

18

只需使用 Linq 扩展方法Reverse

例如

foreach( var item in d.Reverse())
{
    ...
}
于 2012-04-16T11:42:09.043 回答
8

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

var reversed = d.Reverse();

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

于 2012-04-16T11:42:56.063 回答
5

也许OrderByDescending在关键。像这样:

d.OrderByDescending (x =>x.Key)

Foreach像这样:

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

}
于 2012-04-16T11:45:45.417 回答
0

它在 Linq 中可用:d.Reverse()

于 2012-04-16T11:43:08.287 回答