Laden...

Dictionary (generisch), Einfüge-Reihenfolge erhalten

Erstellt von hape vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.471 Views
hape Themenstarter:in
121 Beiträge seit 2006
vor 17 Jahren
Dictionary (generisch), Einfüge-Reihenfolge erhalten

Hallo,

ich habe eine Hand voll Fragen zu der generischen Dictionary-Klasse in System.Collections.Generic.

Ich frage mich:

  1. Bleibt die Einfügereihenfolge erhalten, d.h. läuft der Enumerator in der selben Reihenfolge ab, wie die ursprünglichen Add(...) Anweisungen?
  2. Falls ja - wie springt man zum letzten Element (ohne das umständliche Coding siehe unten)?
  3. Falls nein - welche generische Collection sollte ich nehmen, wenn ich mit Keys drauf zugreifen möchte, und die Einfügereihenfolge erhalten bleiben soll?
  4. ich kriege bei letzterEintrag.Value zu recht die Meldung "Verwendung der nicht zugewiesenen lokalen Variablen 'letzterEintrag'. Wie muß man ein struct eigentlich vorbelegen, oder wie prüft man ein solchiges, ob es leer ist? Mit struct habe ich leider noch gar nicht gearbeitet.

Danke für Eure Ideen.
Gruß Hape


        Dictionary<string, DbVersion> liste = new Dictionary<string, DbVersion>()

        public DbVersion getNeuesteVersion()
        {
            Dictionary<string, DbVersion>.Enumerator e = liste.GetEnumerator();
            KeyValuePair<string, DbVersion> letzterEintrag;
            while (e.MoveNext())
                letzterEintrag = e.Current;
            return letzterEintrag.Value;
        }

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo hape,

zu 1. nein
zu 3. gibt es nicht (entweder Einfügereihefolge oder Key). Vielleicht gefällt die SortedList, oder du verwendest eine zusätzliche List, in der du dir die Einfügereihenfolge merkst.
zu 4. KeyValuePair<string, DbVersion> letzterEintrag = new KeyValuePair<string, DbVersion> ()

herbivore

F
10.010 Beiträge seit 2004
vor 17 Jahren

Es gibt inzwischen einige andere generische Collections.
Schau z.B. mal bei http://www.itu.dk/research/c5/ vorbei.

S
8.746 Beiträge seit 2005
vor 17 Jahren

Danke für den Link, FZelle! Die kannte ich noch nicht. Sind ja selten gut dokumentiert. Da könnte sich MS ne Scheibe von abschneiden....

hape Themenstarter:in
121 Beiträge seit 2006
vor 17 Jahren

Vielen Dank euch allen für die hilfreichen Antworten!
Gruß hape

F
10.010 Beiträge seit 2004
vor 17 Jahren

@svenson:
Na ja, die kommen aus einer Uni, die haben mehr Zeit 😉