将列表从C#传递到F#,如何指定参数为列表?

时间:2019-05-17 11:05:10

标签: f#

使用以下C#代码

var MyList = new List<MyClass>();
SomeFSharpFunc(MyList);

在F#端:

let SomeFSharpFunc (MyList: ???What do I put here so I know it's a list) =

我不知道如何表达传入的参数是一个列表。

此外,我是否需要将C#类复制为F#类型?

1 个答案:

答案 0 :(得分:4)

您可以使用

open System

let SomeFSharpFunc (MyList: System.Collections.Generic.List<MyClass>) = ...

,但是如果您不需要seq<MyClass>的全部功能,则应考虑使用System.Collections.Generic.List(即equivalent to IEnumerable<MyClass>),尤其是因为在F#中,“列表”通常是指{{ 3}}。

另请参阅a very different data structure

  

此外,我是否需要将C#类复制为F#类型?

否。