我试图了解如何将一个浮点数据从IronPython代码传递给C#库.
这是我试图调用的C#代码(这是一个函数是我导入到我的IronPython代码中的库类):
public void ShowMessage(double[,] values)
Run Code Online (Sandbox Code Playgroud)
这是我的IronPython代码:
import clr
clr.AddReferenceToFile(r"DisplayLib.dll")
from DisplayLib import Display
display = Display()
a = [[1.2, 1.3, 1.4, 1.5],
[2.2, 2.3, 2.4, 2.5]]
display.ShowMessage(a)
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:"期望的数组[浮点数],得到列表"然后我试图将数组转换为元组但它只适用于1D数组.
有关如何做的任何建议?
您需要创建一个二维.NET数组的实例.您不能使用Python列表代替数组.一个不幸的限制.
你可以尝试这样的事情:
from System import Array
data = [[1.2, 1.3, 1.4, 1.5],
[2.2, 2.3, 2.4, 2.5]]
# assuming all rows will have the same length
a = Array.CreateInstance(float, len(data), len(data[0]))
for i, row in enumerate(data):
for j, col in enumerate(row):
a[i, j] = col
display.ShowMessage(a);
Run Code Online (Sandbox Code Playgroud)