如何在QuantumSimulator Run()命令中将C#数组传递到Q#操作中?
我正在制作一个程序,它使用一个整数数组作为如何在QuantumSimulator Run()命令中将C#数组传递到Q#操作中?,c#,quantum-computing,q#,C#,Quantum Computing,Q#,我正在制作一个程序,它使用一个整数数组作为Driver.cs中C#script的参数,但它给出了以下错误: 错误CS1503参数2:无法从“long[]”转换为“Microsoft.Quantum.Simulation.Core.IQArray” 我尝试传入一个字符串数组并在程序中转换它们,但出现了一个相同的错误: 错误CS1503参数2:无法从“字符串[]”转换为“Microsoft.Quantum.Simulation.Core.IQArray” 这是Driver.cs-keyArray中的
Driver.cs
中C#script的参数,但它给出了以下错误:
错误CS1503参数2:无法从“long[]”转换为“Microsoft.Quantum.Simulation.Core.IQArray”
我尝试传入一个字符串数组并在程序中转换它们,但出现了一个相同的错误:
错误CS1503参数2:无法从“字符串[]”转换为“Microsoft.Quantum.Simulation.Core.IQArray”
这是Driver.cs
-keyArray
中的C#代码,是我试图传递给Q#的数组
使用(var qsim=new QuantumSimulator())
{
var result=QMain.Run(qsim,keyArray.result);
var(res0,res1,res2)=结果;
系统控制台写入线(res0+“,“+res1+”,“+res2”);
}
Q#QMain operation inOperations.qs
:
operation QMain(keyCode : Int[]) : (Result, Result, Result)
在Q#中,Int
数据类型对应于C#long
传递字符串数组也失败,签名为QMain
:
operation QMain(s : String[]) : (Result, Result, Result)
var result = QMain.Run(qsim, new QArray<long>(keyArray)).Result;
每当我试图在
QMain
中使用任何数组作为参数时,我得到的都是相同的错误。用于在Q#code之间传递固定长度数组的数据类型是QArray
。在将该数据类型传递给QMain
之前,必须从数组中显式创建该数据类型的实例:
operation QMain(s : String[]) : (Result, Result, Result)
var result = QMain.Run(qsim, new QArray<long>(keyArray)).Result;
var result=QMain.Run(qsim,新QArray(keyArray)).result;
您可以看到一个将数组传递给Q#的示例。非常感谢,没有想到会有这么快的响应:))好吧,编译器会准确地告诉您出了什么问题!你所要做的就是弄清楚它想让你投什么,还有你是否感兴趣。