Ciao Curre, benvenuto
Non ho capito benissimo la domanda, provo comunque a risponderti.
In C# ci sono due tipi di array, quelli a dimensione fissa e quelli a dimensione variabile:
Ecco un esempio di array con dimensione prefissata.
char[] v = new char[4];
v[0] = 'c';
v[1] = 'i';
v[2] = 'a';
v[3] = 'o';
La sua dimensione viene stabilita al momento della creazione, volendo puoi anche scrivere cosi:
char[] v = new char[] {'c', 'i', 'a', 'o'};
int length = v.Length; // restituisce 4
In questo caso la dimesione non è stata scritta esplicitamente, ma comunque è prestabilita..
La dimensione non deve necessariamente essere un numero , puo essere una espressione qualunque:
string s = "ciao";
char[] v = new char[s.Length]; // s è lunga 4 e questa sarà la dimensione del vettore.
for(int i = 0; i < s.Length; ++i)
v[i] = s[i];
Se hai necessità di ridimensionare un array dopo la sua creazione puoi usare:
Array.Resize(ref v, 20);
Esistono poi gli array la cui dimensione non è prefissata, ma la ampliano automaticamente, sono decisamente più comodi e consigliati.
List<char> v = new List<char>();
v.Add('c');
v.Add('i');
v.Add('a');
v.Add('o');
Come vedi non è stata scritta nessuna dimensione, potresti continuare aggiungere caratteri finchè ti pare.
Ecco un altro esempio:
List<char> v = new List<char>();
string s = "ciao";
foreach(char c in s)
v.Add(c);
string z = " a tutti";
foreach(char c in z)
v.Add(c);
int count = v.Count; // vale 12;
alla fine v contiene 'ciao a tutti', come vedi non è stato necessario dimensionarlo a priori.
Se qualcosa non è chiaro non farti scrupoli a chiedere.