如何将 C# 数组传递到 QuantumSimulator 运行() 命令中的 Q# 操作?
How to pass C# array into a Q# operation within QuantumSimulator Run() command?
我正在制作一个程序,该程序使用从 Driver.cs
中的 C# 脚本中获取的整数数组作为参数,但出现以下错误:
Error CS1503 Argument 2: cannot convert from 'long[]' to 'Microsoft.Quantum.Simulation.Core.IQArray<long>'
我尝试传入一个字符串数组并在程序中转换它们,但出现了相同的错误:
Error CS1503 Argument 2: cannot convert from 'string[]' to 'Microsoft.Quantum.Simulation.Core.IQArray<string>'
这是 Driver.cs
中的 C# 代码 - keyArray
是我要传递给 Q# 的数组。
using (var qsim = new QuantumSimulator())
{
var result = QMain.Run(qsim, keyArray).Result;
var (res0, res1, res2) = result;
System.Console.WriteLine(res0 + ", " + res1 + ", " + res2);
}
Q# QOperations.qs
中的主要操作:
operation QMain(keyCode : Int[]) : (Result, Result, Result)
在Q#中,Int
数据类型对应C#long
。
传递字符串数组也失败,具有以下 QMain
签名:
operation QMain(s : String[]) : (Result, Result, Result)
每当我尝试在 QMain
.
中尝试使用任何数组作为参数时,我得到的都是相同的错误
用于将固定长度数组传入和传出 Q# 代码的数据类型是 QArray
。在将其传递给 QMain
:
之前,您必须从数组中显式创建此数据类型的实例
var result = QMain.Run(qsim, new QArray<long>(keyArray)).Result;
您可以查看将数组传递给 Q# 的示例 in the samples。
我正在制作一个程序,该程序使用从 Driver.cs
中的 C# 脚本中获取的整数数组作为参数,但出现以下错误:
Error CS1503 Argument 2: cannot convert from 'long[]' to 'Microsoft.Quantum.Simulation.Core.IQArray<long>'
我尝试传入一个字符串数组并在程序中转换它们,但出现了相同的错误:
Error CS1503 Argument 2: cannot convert from 'string[]' to 'Microsoft.Quantum.Simulation.Core.IQArray<string>'
这是 Driver.cs
中的 C# 代码 - keyArray
是我要传递给 Q# 的数组。
using (var qsim = new QuantumSimulator())
{
var result = QMain.Run(qsim, keyArray).Result;
var (res0, res1, res2) = result;
System.Console.WriteLine(res0 + ", " + res1 + ", " + res2);
}
Q# QOperations.qs
中的主要操作:
operation QMain(keyCode : Int[]) : (Result, Result, Result)
在Q#中,Int
数据类型对应C#long
。
传递字符串数组也失败,具有以下 QMain
签名:
operation QMain(s : String[]) : (Result, Result, Result)
每当我尝试在 QMain
.
用于将固定长度数组传入和传出 Q# 代码的数据类型是 QArray
。在将其传递给 QMain
:
var result = QMain.Run(qsim, new QArray<long>(keyArray)).Result;
您可以查看将数组传递给 Q# 的示例 in the samples。