从C#代码中访问F#列表

前端之家收集整理的这篇文章主要介绍了从C#代码中访问F#列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了一个F#模块,里面有一个列表:
module MyModule
type X = 
    {
        valuex : float32
    }
let l = [ for i in 1 .. 10 -> {valuex =  3.3f}]

现在从C#类我试图访问以前定义的列表,但我不知道如何转换它:

... list = MyModule.l ; //here's my problem

我需要这样的东西:

IList<X> list = MyModule.l;

我怎样才能做到这一点?

解决方法

很简单:
IList<MyModule.X> list = MyModule.l.ToList();

您需要转换方法而不是强制转换/隐式转换的原因是因为FSharpList< T>实现IEnumerable< T>但不是IList< T>因为它代表一个不可变的链表.

请注意,您必须在您的C#项目中包含FSharp.Core作为参考.

猜你在找的C#相关文章