Ciao
Quello che puoi fare è utilizzare un vettore che si ridimensiona automaticamente quando necessario quando inserisci dei valori. Per farlo puoi usare la classe List (System.Collections) o più comodamente la classe generica List<T> (System.Collections.Generics) Ad esempio, per creare una matrice bidimensionale di interi potresti fare così:
//Crei il vettore che contiene gli altri vettori
//(vettore di vettori = matrice bidimensionale)
List<List<int>> matrix = new List<List<int>>();
//Inizializzi la dimensione inferiore aggiungendo i vettori
matrix.Add(new List<int>());
//quando hai bisogno di incrementare la dimensione inferiore
//usi matrix.Add(new List<int>());
//aggiungi gli elementi
int valore = 4;
matrix[0].Add(valore);
//modifichi gli elementi:
int nuovoValore = 5;
matrix[0][0] = nuovoValore; //sarebbe come "matrix[0, 0]"
Luca