微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从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作为参考.

原文地址:https://www.jb51.cc/csharp/98233.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐