我正在使用Python.NET在C#中导入一个python列表(字符串),但是我找不到任何从Python.NET动态对象到Python列表的转换示例(所有的示例似乎都是从C#到Python的相反方向)。
我尝试使用(List<string>)和Enumerable.ToList<string>()转换动态python.net对象,但都失败了。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 !
}
}发布于 2020-08-28 06:36:09
答案(可耻地)非常简单,感谢@Dave:
string[] mylist = (string[])pyList;
//or
List<string> mylist = ((string[])pyList).ToList<string>();https://stackoverflow.com/questions/63621696
复制相似问题