Existe-t-il une méthode intégrée pour convertir la liste .NET <> dans la liste F #?convertir .NET générique Liste à liste F #
28
A
Répondre
38
Essayez List.ofSeq
dans l'espace de noms Microsoft.FSharp.Collections
.
# List.ofSeq : seq<'T> -> 'T list
Ce n'est pas spécifiquement pour System.Collections.Generic.List<T>
, mais pour IEnumerable<T>
(seq<'T>
en F #) types en général, il devrait encore fonctionner.
(Il est également pas strictement construit dans la langue F #, mais elle ne est List<T>
construit en C# ou VB.NET. Ce sont tous partie des bibliothèques standard respectives.)
7
Étant donné que vous IEnumerable<T> foo
souhaitez effectuer les opérations suivantes (en C#) pour obtenir un F # list<T>
:
var fsharpList = ListModule.OfSeq(foo);
ListModule
fait référence à Microsoft.FSharp.Collections.ListModule
, et est appelé List
à partir de F # lui-même.
J'ai également remarqué avec l'inférence de type compilateur 2.0 la liste sur le côté droit apparaît comme un seq (ou IEnumerable) sur le côté gauche. Assez intelligent de ces gars-là (+1) –
BuddyJoe