IronPython:将 C# 列表转换为 IronPython.Runtime.List

问题描述

我正在尝试将数组/列表作为参数发送到 IronPython 方法

我可以传递一个普通的数组或列表(它可以工作),但是像 pop 这样的原生方法在 Python 端不可用。

将 C# List<> 转换为 IronPython.Runtime.List 的最佳方法是什么?

我找到了 IronPython.Runtime.List.__new__ 方法,但我不知道如何填充 CodeContextPythonType 变量。

我找到了相反的方法passing Lists from IronPython to C#

解决方法

糟糕 - 找到了。只使用一个空的构造函数():

public static IronPython.Runtime.List ToPythonList(this IEnumerable<object> list)
{
    var result = new IronPython.Runtime.List();

    foreach ( var item in list )
        result.append( item );

    return result;
}