11

辞書が1つあり、それにいくつかの要素を追加しました。たとえば、

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を読み、次にshows、gdlh、最後にContentを読みたいと思います。

この問題から抜け出すために私を導いてください...

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 に答える