小编bri*_*icx的帖子

Python.NET - 将 Python 列表转换为 .NET 列表 (C#)

我正在使用 Python.NET 在 C# 中导入一个 Python 列表(字符串),但我找不到任何从 Python.NET 动态对象到 C# 列表的转换示例(所有示例似乎都与 C# 与 Python 的方向相反)。

我试图用(List<string>)和来投射动态 python.net 对象,Enumerable.ToList<string>()但都失败了。该as运营商返回null。唯一有效的方法是用foreach...循环它,但这真的是唯一的方法和最好的解决方案吗?

这是代码:

using (Py.GIL())
{
   dynamic MyPythonClass = Py.Import("MyPythonClass")
   dynamic pyList = MyPythonClass.MyList;
   
   //List<string> mylist = (List<string>)pyList;               //failed
   //List<string> mylist = Enumerable.ToList<string>(pyList);  //failed
   //List<string> mylist = pyList as List<string>;             //returns null

   List<string> mylist = new List<string>();
   foreach(string item in pyList)
   {
         mylist.Add(item);                                     //Success !
   }
}

Run Code Online (Sandbox Code Playgroud)

c# python python.net

2
推荐指数
1
解决办法
622
查看次数

标签 统计

c# ×1

python ×1

python.net ×1