C# 按索引获取对象数组的单个值
我在这里遗漏了一些明显的东西,我想我需要一个新的视角 我正在传递object[]类型的参数。我想提取数组中的元素,并将其值赋给另一个变量,因为我正在循环另一个列表: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
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())