In C#, è possibile inizializzare un array multidimensionale usando le costanti in questo modo:Inizializzazione array multidimensionali in C# (con altri array)
Object[,] twodArray = new Object[,] { {"00", "01", "02"},
{"10", "11", "12"},
{"20", "21", "22"} };
personalmente ritengo inizializzare un array con costanti codificati duri viene praticamente inutile per altro che esercizi di prova. Ad ogni modo, ciò di cui ho disperatamente bisogno è inizializzare un nuovo array multidimensionale come sopra usando gli array esistenti. (Che hanno lo stesso numero di elementi, ma i contenuti sono ovviamente definiti solo in fase di esecuzione).
Un esempio di ciò che vorrei fare è.
Object[] first = new Object[] {"00", "01", "02"};
Object[] second = new Object[] {"10", "11", "12"};
Object[] third = new Object[] {"20", "21", "22"};
Object[,] twodArray = new Object[,] { first, second, third };
Sfortunatamente, questo non viene compilato come codice valido. Abbastanza divertente, quando ho provato
Object[,] twodArray = new Object[,] { {first}, {second}, {third} };
Il codice fatto compilare ed eseguire, ma il risultato non è stato come desiderato - 3 da 3 serie di oggetti, ciò che è venuto fuori è stato un 3 da 1 array di array, ognuno dei quali aveva 3 elementi. Quando ciò accade, non posso accedere al mio array usando:
Object val = twodArray[3,3];
devo andare:
Object val = twodArray[3,1][3];
che ovviamente non è il risultato desiderato.
Quindi, c'è un modo per inizializzare questo nuovo array 2D da più array esistenti senza ricorrere all'iterazione?
Vuol Object [] {primo, secondo, terzo}; ha senso invece di Object [,] {first, second, third}; (rimuovere il coma di dimensione)? dovrebbe essere notato come twoarray [3] [3] –