将一个数组从IronPython传递到c#库
本文关键字:IronPython 数组 一个 | 更新日期: 2023-09-27 18:08:38
我试图理解如何从IronPython代码传递浮点数的多维数组到c#库。
这是我试图调用的c#代码(这是一个函数是一个库类,我正在导入我的IronPython代码):
public void ShowMessage(double[,] values)
这是我的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)
我得到以下例外:"预期数组[float],得到列表",然后我试图将数组转换为元组,但它只适用于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);