有没有内置的方法可以将.NET List<>转换为F#列表?
Microsoft.FSharp.Collections
命名空间中使用 List.ofSeq
。# List.ofSeq : seq<'T> -> 'T list
这个功能不是专门为System.Collections.Generic.List<T>
设计的,而是针对一般的IEnumerable<T>
(在F#中为seq<'T>
)类型,所以它应该仍然有效。
(它也不是严格内置于F#语言中,但List<T>
也不是C#或VB.NET内置的。它们都是各自标准库的一部分。)
若给定 IEnumerable<T> foo
,你需要按照以下方式(在 C# 中)获取一个 F# 的 list<T>
:
var fsharpList = ListModule.OfSeq(foo);
ListModule
指的是 Microsoft.FSharp.Collections.ListModule
,在 F# 内部被称为 List
。