Wenn Sie LINQ verwenden können, können Sie einfach tun:
dict.Keys.Reverse();
Dies ergibt den Schlüssel der Sammlung in umgekehrter Reihenfolge.
BEARBEITEN: Der Klasse SortedDictionary
ist eine IComparer<T>
zugeordnet, wenn sie konstruiert ist, und dies kann nicht nachträglich geändert werden. Sie können jedoch ein neues SortedDictionary<T>
aus dem Original erstellen:
public sealed class ReverseComparer<T> : IComparer<T> {
private readonly IComparer<T> inner;
public ReverseComparer() : this(null) { }
public ReverseComparer(IComparer<T> inner) {
this.inner = inner ?? Comparer<T>.Default;
}
int IComparer<T>.Compare(T x, T y) { return inner.Compare(y, x); }
}
Nun, da passieren in den Konstruktor für das Wörterbuch:
class ReverseComparer<T> : IComparer<T> {
private readonly m_InnerComparer = new Comparer<T>.Default;
public ReverseComparer(IComparer<T> inner) {
m_InnerComparer = inner; }
public int Compare(T first, T second) {
return -m_InnerComparer.Compare(first, second); }
}
var reverseDict = new SortedDictionary<TPriority, Queue<TValue>>(dict,
new ReverseComparer(Comparer<TPriority>.Default));
möglich Duplikat [Rückwärts Sortiert Wörterbuch in .NET] (http://stackoverflow.com/questions/931891/reverse-sorted-dictionary-in -net) – nawfal