Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在QuantumSimulator Run()命令中将C#数组传递到Q#操作中?_C#_Quantum Computing_Q# - Fatal编程技术网

如何在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 in
Operations.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#的示例。

非常感谢,没有想到会有这么快的响应:))好吧,编译器会准确地告诉您出了什么问题!你所要做的就是弄清楚它想让你投什么,还有你是否感兴趣。