Todavía soy nuevo en C# y he estado luchando con varios problemas en las matrices. Tengo una serie de objetos de metadatos (pares de nombre y valor) y me gustaría saber cómo crear solo el número de objetos "InputProperty" que realmente necesito. En este bucle, he establecido arbitrariamente el número de elementos en 20 e intento rescatar cuando la entrada se vuelve nula, pero el servicio web en el extremo receptor no tiene ningún elemento nulo:Cómo configurar la longitud de la matriz en C# dinámicamente
private Update BuildMetaData(MetaData[] nvPairs)
{
Update update = new Update();
InputProperty[] ip = new InputProperty[20]; // how to make this "dynamic"
int i;
for (i = 0; i < nvPairs.Length; i++)
{
if (nvPairs[i] == null) break;
ip[i] = new InputProperty();
ip[i].Name = "udf:" + nvPairs[i].Name;
ip[i].Val = nvPairs[i].Value;
}
update.Items = ip;
return update;
}
En resumen, supongamos que solo tengo 3 pares de valores de nombre en la matriz de entrada anterior. En lugar de asignar 20 elementos para la matriz denominada ip, ¿cómo se puede codificar esto para que la ip sea tan grande como debe ser? El objeto de actualización se pasa a través de otro servicio web, por lo que la serialización es importante (es decir, no puedo usar namevaluecollection, etc.).
p.s. ¿Es la única forma de seguimiento de una pregunta publicada a través de la función "agregar comentarios"?
creo que se está perdiendo el problema aquí - la matriz de entrada, nvPairs, contiene valores nulos después de los útiles. Simplemente usar su longitud no resolverá nada. – Whatsit
El OP nunca especificó eso. Solo asumí que si null era un simple control de cordura. Si lo que dices es, de hecho, el caso, entonces tienes razón. La lista definitivamente sería el camino a seguir. – BFree
Hmm No pensé que podría ser un control de cordura. Eso es ciertamente posible. – Whatsit