我写了一个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作为参考.