Dictionary-Initialisierer in X#

This forum is meant for questions and discussions about the X# language and tools
User avatar
pemo18
Posts: 81
Joined: Fri Apr 27, 2018 10:38 am
Location: Germany

Dictionary-Initialisierer in X#

Post 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
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Dictionary-Initialisierer in X#

Post 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" }
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
pemo18
Posts: 81
Joined: Fri Apr 27, 2018 10:38 am
Location: Germany

Dictionary-Initialisierer in X#

Post 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
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Dictionary-Initialisierer in X#

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Dictionary-Initialisierer in X#

Post 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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
pemo18
Posts: 81
Joined: Fri Apr 27, 2018 10:38 am
Location: Germany

Dictionary-Initialisierer in X#

Post 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
User avatar
Chris
Posts: 4915
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

Dictionary-Initialisierer in X#

Post 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 :)
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Dictionary-Initialisierer in X#

Post 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.
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
robert
Posts: 4529
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Dictionary-Initialisierer in X#

Post by robert »

English, German,
Chris and I understand both...

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Dictionary-Initialisierer in X#

Post by wriedmann »

Hi Robert,
English, German, Chris and I understand both...
you are speaking it very well, a lot better than I English....

Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Post Reply