Oppure

Loading
02/05/12 15:18
mg

Quale è il modo migliore per ridimensionare una matrice a più dimensioni?

e.g A(3,7) --> A(4,7).

I diversi modi che ho visto fanno sempre riferimento a matrici monodimensionali. L'unica possibilità è salvare la matrice A in Atmp, ridefinire A e copiare gli elementi di Atmp nella nuova A tramite un ciclo for?

grazie per l'attenzione
Marco
aaa
04/05/12 7:10
mg
riferendomi a questo link stackoverflow.com/questions/6539571/…
in cui è ben spiegato il comportamento di copy per array multidimensionali ed è proposta una soluzione al mio problema riporto una possibile soluzione:

    private void ResizeArray<T>(ref T[,] original, int x, int y)
        {
            T[,] newArray = new T[x, y];
            int minX = Math.Min(original.GetLength(0), newArray.GetLength(0));
            int minY = Math.Min(original.GetLength(1), newArray.GetLength(1));
            for (int i=0; i<minX;++i) Array.Copy(original, i*original.GetLength(1),newArray,i*newArray.GetLength(1),minY);
            original = newArray;
        }


Marco
Ultima modifica effettuata da mg 04/05/12 8:08
aaa