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



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

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# 中,字典使元素保持自然顺序。但是我现在想将这些值从最后一个迭代到第一个(即反向顺序)。

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

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

只需使用 Linq 扩展方法 反向

例如

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

使用 LINQ 反向,但请注意,它不会就地反转

var reversed = d.Reverse();

但请注意,这不是一个排序词典,所以首先不一定保证顺序。也许你想要OrderByDescending

也许OrderByDescending在键上。喜欢这个:

d.OrderByDescending (x =>x.Key)

Foreach像这样:

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

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

最新更新