Esiste un metodo incorporato per convertire l'elenco .NET <> nell'elenco F #?Converti Elenco generico .NET nell'elenco F #
28
A
risposta
38
Provare List.ofSeq
nello spazio dei nomi Microsoft.FSharp.Collections
.
# List.ofSeq : seq<'T> -> 'T list
Non è specifico per System.Collections.Generic.List<T>
, ma per IEnumerable<T>
(seq<'T>
in F #) tipi in generale, quindi dovrebbe ancora funzionare.
(E 'anche non strettamente integrato nel linguaggio F #, ma non è List<T>
costruito in C# o VB.NET. Questi sono tutti parte delle rispettive librerie standard.)
7
Dato IEnumerable<T> foo
si dovrebbe effettuare le seguenti operazioni (in C#) per ottenere un F # list<T>
:
var fsharpList = ListModule.OfSeq(foo);
ListModule
riferisce a Microsoft.FSharp.Collections.ListModule
, e si riferisce a come List
da F # stessa.
Ho anche notato con l'inferenza del tipo di compilatore 2.0 l'elenco sul lato destro si presenta come seq (o IEnumerable) sul lato sinistro. Abbastanza intelligente di questi ragazzi (+1) –
BuddyJoe