【发布时间】:2010-06-23 20:14:04
【问题描述】:
是否有将 .NET List 转换为 F# 列表的内置方法?
【问题讨论】:
标签: c# .net f# generic-list
是否有将 .NET List 转换为 F# 列表的内置方法?
【问题讨论】:
标签: c# .net f# generic-list
在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。
【讨论】:
ListModule。它在 F# 中只是称为 list,因此在 F# 中称为 list.ofSeq == 在 C# 中称为 ListModule.OfSeq。