xsharp.eu • Dictionary-Initialisierer in X#
Page 1 of 2

Dictionary-Initialisierer in X#

Posted: Mon Mar 25, 2019 12:02 pm
by pemo18
Die Listen-Initialisierer sind (genau wie in C#) sehr praktisch. Es wäre lediglich schön, wenn innerhalb der Werte kein Zeilenumbruchzeichen (Semikolon) gesetzt werden müsste.

Gibt es auch Initialisierer für ein Dictionary, z.B.

var dic := Dictionary<string, string> { ;
{ "k1", "Wert1"}, ;
{ "k2", "Wert2"}, ;
{ "k3", "Wert3"} ;
}

Danke und viele Grüße,
Peter

Dictionary-Initialisierer in X#

Posted: Mon Mar 25, 2019 12:36 pm
by wriedmann
Hallo Peter,

für ein Dictionary habe ich das nicht hinbekommen, da müssen wir auf das Entwicklungsteam warten.

Eine normales List-Objekt lässt sich so initialisieren:

Code: Select all

local oList as List<string>
oList := List<string>{}{ "Hi", "X#" }
Die Entsprechung für ein Dictionary wäre entsprechend die folgende:

Code: Select all

local oDict as Dictionary<string,string>
oDict := Dictionary<string,string>{}{ { "Hi", "people" } }
Aber auch das hier funktioniert nicht:

Code: Select all

oDict := Dictionary<string,string>{}{ <KeyValuePair<string,string>>{ "Hi", "people" } }
So lasse ich mich gerne überraschen, wie das zu schreiben ist - hier im Forum gibt es jedenfalls keine Einträge.
Wolfgang
P.S. noch eine Ergänzung: ein KeyValuePair lässt sich sehr wohl initialisieren:

Code: Select all

oKeyValuePair	:= KeyValuePair<string,string>{ "Hi", "People" }

Dictionary-Initialisierer in X#

Posted: Mon Mar 25, 2019 3:37 pm
by pemo18
Hallo Wolfgang,

Ja, vielen Dank!

Es wäre auch nur ein "nice to have" feature, da der Code dadurch etwas übersichtlicher wird und man es von C# auch so kennt.

Ich kann mir vorstellen, dass es noch implementiert wird.

Peter

Dictionary-Initialisierer in X#

Posted: Tue Mar 26, 2019 6:11 am
by wriedmann
Hallo Peter,

ich habe das gestern mal ans Entwicklungsteam weitergegeben - schauen, was da rauskommt.

Ich kann mir nicht vorstellen, dass es da nicht bald eine Lösung gibt - wenn das nicht jetzt schon geht, dann in der nächsten oder übernächsten Version. Soweit ich weiß, sind sie gerade dabei, die nächste Version für die Freigabe vorzubereiten.

Wolfgang

Dictionary-Initialisierer in X#

Posted: Wed Mar 27, 2019 4:52 am
by wriedmann
Hallo Peter,

das Entwicklungsteam hat bestätigt, dass es sich hier um einen Bug handelt, denn eigentlich sollte das mit der doppelten geschweiften Klammer funktionieren, das hier:

Code: Select all

oDict := Dictionary<string,string>{}{ { "Hi", "people" } }
Der Fix wird es allerdings nicht in die nächste Version des Compilers schaffen, da noch mehrere andere Dinge anstehen, und der Build kurz vor der Freigabe steht.

Er ist aber in die Liste der zu behebenden Dinge aufgenommen worden und wird in der übernächsten Version drin sein.

Wolfgang

Dictionary-Initialisierer in X#

Posted: Wed Mar 27, 2019 1:25 pm
by pemo18
Hallo Wolfgang,

Der direkte Draht zum Entwicklerteam ist natürlich sehr praktisch;)

ich dachte mir schon, dass es grundsätzlich gehen würde, da sich nach meiner bisherigen Erfahrung mit der Sprache die Syntax von X# Core sehr nahe an die von C# anlehnt was generell positiv ist.

Viele Grüße,
Peter

Dictionary-Initialisierer in X#

Posted: Wed Mar 27, 2019 1:43 pm
by Chris
Hi Peter,
pemo18 wrote: Der direkte Draht zum Entwicklerteam ist natürlich sehr praktisch;)
Just to be clear, everybody has a direct line to the development team!

But since Wolfgang asked me about this via PM, I then asked him to reply to you himself here, instead of me doing that, because his German is a lot better than mine :)

Dictionary-Initialisierer in X#

Posted: Wed Mar 27, 2019 4:05 pm
by wriedmann
Hallo Peter,

wie Chris das schon richtigerweise geschrieben hat: eigentlich hat jeder hier direkten Zugang zum Entwicklungsteam, und besonders klarerweise die FoX-Mitglieder.

Das ist ein nicht zu unterschätzender Vorteil.

Wolfgang
P.S. das wäre eigentlich eine englischsprachige Gruppe - deutsche Nachrichten gehören eigentlich in die entsprechende Gruppe.

Dictionary-Initialisierer in X#

Posted: Wed Mar 27, 2019 4:54 pm
by robert
English, German,
Chris and I understand both...

Robert

Dictionary-Initialisierer in X#

Posted: Wed Mar 27, 2019 4:57 pm
by wriedmann
Hi Robert,
English, German, Chris and I understand both...
you are speaking it very well, a lot better than I English....

Wolfgang