从C#代码中访问F#列表
发布时间:2020-12-15 18:20:31 所属栏目:百科 来源:网络整理
导读:我写了一个F#模块,里面有一个列表: module MyModuletype X = { valuex : float32 }let l = [ for i in 1 .. 10 - {valuex = 3.3f}] 现在从C#类我试图访问以前定义的列表,但我不知道如何转换它: ... list = MyModule.l ; //here's my problem 我需要这样的
我写了一个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作为参考. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |