/ / Obter um único valor de uma matriz de objetos por índice - c #, arrays, iteração

Obter um único valor de uma matriz de objetos por índice - c #, arrays, iteração

Estou sentindo falta de algo óbvio aqui e acho que preciso de uma nova perspectiva.

Estou passando um parâmetro do tipo objeto []. Eu quero extrair o elemento dentro da matriz e atribuir seu valor a outra variável, como eu estou fazendo um loop através de outra lista:

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

Por mais que eu tente, o parâmetro. O valor é definido para a matriz de objetos em vez do valor do objeto na posição i.

O que estou perdendo aqui? Existe uma maneira diferente de obter o valor do objeto dentro de uma matriz de objeto diferente de index / position?

Ok, aqui está exatamente o que estou fazendo.

protected SqlCommand CreateStoredProcedureCommand(string storedProcedureName, object[] parameterValues)
{
SqlCommand cmd = new SqlCommand(storedProcedureName, Connection)
{CommandTimeout = _commandTimeout, CommandType = CommandType.StoredProcedure};

SqlCommandBuilder.DeriveParameters(cmd);
int index = 0;

foreach(SqlParameter parameter in cmd.Parameters)
{
if (parameter.Direction == ParameterDirection.Input || parameter.Direction == ParameterDirection.InputOutput)
{
parameter.Value = parameterValues[index]
index++;
}
}

return cmd;
}

Parece assim devemos trabalho, então eu acho que vou voltar e investigar o que estou realmente passando. Talvez eu esteja passando uma matriz de matrizes ou fazendo outra coisa estranha.

Respostas:

0 para resposta № 1

Encontrei. Eu estava fazendo algo estranho.

Eu estava enviando o parâmetroValores como uma lista desta forma:

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

Mudou para ToArray () e funcionou.