Laden...

Dictionary - "direkte" Initialisierung

Erstellt von Cheeesi vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.606 Views
C
Cheeesi Themenstarter:in
26 Beiträge seit 2009
vor 13 Jahren
Dictionary - "direkte" Initialisierung

Hallo zusammen,

ich habe eine Frage bezüglich der Initialisierung eines Dictionarys.

Ich verdeutliche diese Frage am besten direkt an einem Beispiel:

So habe ich bislang immer ein Dictionary initialisiert und in einer Methode als Parameter übergeben:

Dictionary<String,Object> parameters = new Dictionary<String,Object>();
parameters.Add("username","Peter");
AufrufEinerMethodeDieEinDictionaryAlsParameterBekommt(parameters);

Kann ich ein Dictionary auch so initilaisieren, dass dieser Wert bei der Initialisierung hinzugefügt wird? Im Anwendungsfall also z.B.:

AufrufEinerMethodeDieEinDictionaryAlsParameterBekommt(new Dictionary<String,Object>("username","Peter"));

Ist dies möglich?
Und allgemein: Wie nennt man diese Art der "direkten Initialisierung" in der Fachsprache überhaupt? 😃

Viele Grüße,
Cheeesi

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo Cheeesi,

daran wirst du dich wohl leider gewöhnen müssen.
Hab gerade nochmals den Constructor vom Dictionary durchforstet und es gibt da wohl nix passendes.

D.h. es ist auch keine Initialisierung ala Array möglich wo man in {12,12,12} die Elemente angibt.

Aber so schlimm ist das nun auch wieder nicht da man ein Dictionary normalerweise doch dazu verwendet um dynamisch irgendwelche Sachen abzuspeichern

Gruss
Michael

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Cheeesi,

wobei es jetzt auch kein großes Problem wäre, eine generische Methode zu schreiben, die zwei Arrays bekommt und daraus ein Dictionary macht. Bei Aufruf der Methode benutzt man dann zwei Array-Initialisierer.

Wie nennt man diese Art der "direkten Initialisierung" in der Fachsprache überhaupt? 😃

Einfach nur array initializer (auf "deutsch" Array-Initialisierer):

The new operator permits the initial values of the array elements to be specified using an array initializer, which is a list of expressions written between the delimiters { and }.

herbivore

0
767 Beiträge seit 2005
vor 13 Jahren

ja so:


AufrufEinerMethodeDieEinDictionaryAlsParameterBekommt(
   new Dictionary<String,Object> { { "username","Peter" } }
);

es sind je 2 geschwungene nötig. die erste fürs Dictionary<> die zweite fürs KeyValuePair<>.

loop:
btst #6,$bfe001
bne.s loop
rts