Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
C# 按索引获取对象数组的单个值_C#_Arrays_Iteration - Fatal编程技术网

C# 按索引获取对象数组的单个值

C# 按索引获取对象数组的单个值,c#,arrays,iteration,C#,Arrays,Iteration,我在这里遗漏了一些明显的东西,我想我需要一个新的视角 我正在传递object[]类型的参数。我想提取数组中的元素,并将其值赋给另一个变量,因为我正在循环另一个列表: private void PopulateValues(List<SqlParameters> parameters, object[] parameterValues) { int index = 0; foreach(var parameter in parameters) { paramet

我在这里遗漏了一些明显的东西,我想我需要一个新的视角

我正在传递object[]类型的参数。我想提取数组中的元素,并将其值赋给另一个变量,因为我正在循环另一个列表:

private void PopulateValues(List<SqlParameters> parameters, object[] parameterValues) {
   int index = 0;
   foreach(var parameter in parameters) {
      parameter.Value = parameterValues[index];
      index++;
   }

看起来这应该行得通,所以我想我会回去调查一下我到底通过了什么。可能我传递了一个数组,或者做了一些奇怪的事情。

找到了。我在做一些奇怪的事

我以列表的形式发送参数值:

CreateStoredProcedureCommand("spName", pContext.SqlParameters.Select(b=>b.Value).ToList())

将其更改为ToArray(),它就工作了。

这确实将参数值设置为
参数值的元素
索引
。你能告诉我你是怎么调用这个方法的吗?这里有些不对劲。你绝对确定它通过了整个数组吗?你是不是偶然通过了一个数组数组?@duckus你是说
parameter.Value=parameterValues[index]正在分配
参数。值=参数值
?什么?同意@LeeGun。传递对象[]而不是实际类型的数组有什么原因吗?除非您在
CreateStoredProcedureCommand
中使用了
params
关键字,否则您甚至不应该编译您所传递的对象[],但我看不到您在问题中包含的代码中有这一点。也就是说,您的解决方案似乎是正确的。
CreateStoredProcedureCommand("spName", pContext.SqlParameters.Select(b=>b.Value).ToList())