将.NET泛型列表转换为F#列表

Bud*_*Joe 36 .net c# f# generic-list

是否有内置方法将.NET List <>转换为F#列表?

sta*_*ica 49

尝试List.ofSeqMicrosoft.FSharp.Collections命名空间.

#                     List.ofSeq : seq<'T> -> 'T list
Run Code Online (Sandbox Code Playgroud)

它不是专门用于System.Collections.Generic.List<T>,但对于IEnumerable<T>(seq<'T>在F#中)类型,所以它应该仍然有用.

(它也没有严格地嵌入到F#语言中,但它们都没有List<T>构建到C#或VB.NET中.这些都是各自标准库的一部分.)


bas*_*rat 10

鉴于IEnumerable<T> foo您将执行以下操作(在C#中)以获取F#list<T>:

 var fsharpList = ListModule.OfSeq(foo);
Run Code Online (Sandbox Code Playgroud)

ListModule指的Microsoft.FSharp.Collections.ListModuleListF#本身,并且指的是F#本身.

  • 如果问题是关于C#或F#,则不指定.此代码在C#中.F#中有一个`ListModule`.它在F#中名为`list`,因此在C#中的`#==`ListModule.OfSeq`中为`list.ofSeq`. (3认同)