[C#] Problema con un vettore

di
Anonimizzato10584
il
1 risposte

[C#] Problema con un vettore

Inizio avvisandovi che non ho trovato nessuna discussione che rispondesse alla domanda che scriverò qua sotto, e se è presente nel forum vi chiedo scusa in anticipo ed eventualmente di reindirizzarmi alla pagina.

Allora io avrei un problema con la grandezza di un vettore ovvero, vorrei che il mio vettore si dimensioni in base alla parola che inseriro con un readline ad esempio:
Inserisco la parola 'ciao' e il mio vettore in automantico diventera un vettore con 4(da 0 a 3 se non erro) celle al suo interno.
Spero di essere chiaro, mi farebbe piacere avere una risposta semplice perchè non sono espertissimo.

Ancora grazie in anticipo.

1 Risposte

  • Re: [C#] Problema con un vettore

    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.
Devi accedere o registrarti per scrivere nel forum
1 risposte