Autor Beitrag
daniel_sudy
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 15.01.08 21:16 
Guten Tag, ich habe folgendes Problem.

Ich füttere eine Sorted List mit einem key(int) und einem value(string)1 Nun reiht mir die sorted list die int werte des keys nach aufsteigender Flanke! Sprich beginnend mit dem kleinsten Wert!
Nun mein Problem! Ich benötige die Ausgabe aber vom größten Wert bis zum kleinsten Wert!

Gibt es irgendwo eine Möglichkeit die Liste Umzudrehen!

mfg Daniel Sudy


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 15.01.2008 um 20:28
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 15.01.08 21:28 
Hallo!

Habe selber noch nicht damit gearbeitet, aber der Konstruktor sieht so aus, als könne man ihm einen eigenen Comparer übergeben, der dann also genau umgekehrt funktionieren kann.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Di 15.01.08 23:04 
user profile iconChristian S. hat folgendes geschrieben:
Habe selber noch nicht damit gearbeitet, aber der Konstruktor sieht so aus, als könne man ihm einen eigenen Comparer übergeben, der dann also genau umgekehrt funktionieren kann.
Jupp, ich hasse Klassen, die keine Delegates unterstützen, auch wenn es definitiv Sinn gemacht hätte

@Daniel, das kannst du dir zukünftig hiermit vereinfachen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
public sealed class WrappedComparer<T> : IComparer<T>
{
  readonly Comparison<T> comparison;

  public WrappedComparer(Comparison<T> comparison)
  {
    this.comparison = comparison;
  }

  int IComparer<T>.Compare(T x, T y)
  {
    return comparison(x, y);
  }
}

Nun geht das:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
IComparer<int> reverseIntComparer = new WrappedComparer<int>(delegate(int left, int right)
{
  return -left.CompareTo(right);
});

SortedList<intstring> list = new SortedList<intstring>(reverseIntComparer);

list.Add(1"a");
list.Add(2"b");
list.Add(3"c");
list.Add(4"d");
Die Liste sollte jetzt die Element verkehrtrum enthalten.