Ich beginne gerade mit F # und ich möchte über ein Wörterbuch iterieren und die Schlüssel und Werte erhalten.
Also in C # würde ich sagen:
%Vor%Ich kann anscheinend keinen Weg finden, dies in F # zu tun (nicht eines, das sowieso kompiliert).
Könnte jemand bitte den entsprechenden Code in F # vorschlagen?
Prost,
Crush
Was ist der Typ Ihres Wörterbuchs?
Wenn es nicht generisch ist IDictionary
, wie Ihr Code-Snippet suggeriert, dann versuchen Sie Folgendes (In F # fügt for
implizit keine Conversions ein, daher müssen Sie Seq.cast<>
hinzufügen, um eine typisierte Auflistung zu erhalten mit denen du leicht arbeiten kannst):
Wenn Sie das generische IDictionary<'K, 'V>
verwenden, brauchen Sie den Aufruf von Seq.cast
nicht (wenn Sie Kontrolle über die Bibliothek haben, ist dies besser als die vorherige Option):
Wenn Sie unveränderlichen F # Map<'K, 'V>
type verwenden (was der beste Typ ist, wenn Sie Funktionscode in F # schreiben), können Sie die Lösung von Pavel verwenden oder for
loop zusammen mit verwenden das KeyValue
aktive Muster wie folgt:
In beiden Fällen können Sie entweder for
oder verschiedene iter
-Funktionen verwenden. Wenn Sie etwas mit Nebenwirkungen ausführen müssen, dann würde ich for
loop bevorzugen (und dies ist nicht die erste Antwort, wo ich dies erwähne :-)), weil dies ein Sprachkonstrukt für diesen Zweck ist. Für die funktionale Verarbeitung können Sie verschiedene Funktionen wie Seq.filter
etc .. verwenden.
Tags und Links f#