当前位置 : 主页 > 网络推广 > seo >

从F#列中检索项目传递给C#

来源:互联网 收集:自由互联 发布时间:2021-06-16
我在C#中有一个函数在F#中被调用,将其参数传递给Microsoft.FSharp.Collections.List objectgt ;. 如何从C#函数中的F#列表中获取项目? 编辑 我已经找到了一个“功能”样式的方法来循环遍历它们
我在C#中有一个函数在F#中被调用,将其参数传递给Microsoft.FSharp.Collections.List< object&gt ;. 如何从C#函数中的F#列表中获取项目? 编辑 我已经找到了一个“功能”样式的方法来循环遍历它们,并可以将它们传递给如下函数,以返回C#System.Collection.List:

private static List<object> GetParams(Microsoft.FSharp.Collections.List<object> inparams)
{
    List<object> parameters = new List<object>();
    while (inparams != null)
    {
        parameters.Add(inparams.Head);
        inparams = inparams.Tail;
     }
     return inparams;
 }

再次编辑

如下所述,F#列表是可枚举的,所以上述功能可以替换为行;

new List<LiteralType>(parameters);

但是,有没有办法通过索引引用F#列表中的项目?

一般来说,避免将F#特定类型(如F#’列表’类型)暴露给其他语言,因为体验并不是那么好(如您所见).

一个F#列表是一个IEnumerable,所以你可以创建一个例子.一个System.Collections.Generic.List从它这样很容易.

没有有效的索引,因为它是一个单链表,因此访问任意元素是O(n).如果你想要索引,更改到另一个数据结构是最好的.

网友评论