Autor Beitrag
iGoofy
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 20.11.09 12:05 
Kann ich ein Dictionary<int,string> nach der Länge des Strings sortieren?
Länge auslesen bekomme ich hin, aber das einfügen ( á la Dictionary.Replace(int old,int new)) fehlt mir irgendwie?!

Brauche den Key für eine spätere Anwendung, deshalb Dictionary.

Grüße

Torsten
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 20.11.09 12:50 
Hallo,

wenn du den Key weiterhin brauchst, dann bestimmt der die Standardsortierung.

Es gibt aber (glaube ich) über eine der Schnittstellen IEnumerator, IEnumerable, IComparable die Möglichkeit zu einer eigenen Sortierung. Dazu habe ich keine Ahnung, aber die Suche nach diesen Begriffen könnte ebenso helfen wie der Artikel Hilfreiche Iteratoren / Improving Foreach.

Gruß Jürgen
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 20.11.09 21:02 
@iGoofy & JüTho: Dictionary kennt überhaupt keine Art von Sortierung, weder Standard- noch eigene ;) . Aber es geht wohl eher um die Indizierung.

user profile iconiGoofy hat folgendes geschrieben Zum zitierten Posting springen:
Brauche den Key für eine spätere Anwendung, deshalb Dictionary.
Du brauchst ihn aber anscheinend nicht als Key, sondern nur als Datum. Also ab in Value damit:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Dictionary<int, KeyValuePair<intstring>> pairsByStringLength = ...

void Add(int i, string s)
{
  pairsByStringLength.Add(s.Length, new KeyValuePair(i, s));
}

Add(42"hi!");

pairsByStringLength[3].Key; // 42

Die Strings müssen natürlich alle unterschiedliche Längen haben, ansonsten ist Dictionary die falsche Datenstruktur.

_________________
>λ=
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 21.11.09 11:26 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
@iGoofy & JüTho: Dictionary kennt überhaupt keine Art von Sortierung, weder Standard- noch eigene ;) . Aber es geht wohl eher um die Indizierung.

So meinte ich es auch: Mit for oder foreach bekommt man die Daten in einer bestimmten Reihenfolge. Oops, "Reihenfolge" ist fast ein Synonym für "Sortierung". Aber die gewünschte Reihenfolge geht auf jeden Fall nur mit einer zusätzlichen Maßnahme. Jürgen