Wie ein Array dynamisch erweitern?



  • Hallo,

    wie kann ich ein Array dynamisch zur Laufzeit erweitern?

    Habe folgendes Problem. Ich rufe in einer for-Schleife eine Methode auf, die mir u.U. einen Wert zurückliefert und in ein int-Array gespeichert werden sollen.
    Da die Anzahl der Werte unbestimmt ist, kann ich dem Array bei der Deklaration keine festen Wert zuweisen.

    Wie kann ich einen neuen Wert dem Array hinzufügen ohne die Größe des Arrays vor dem Schleifendurchlauf zu kennen ( und dementsprechend nicht zu initialisieren geht )?

    Danke und Gruß
    Pedro



  • Hmm, kannst du nicht ne Liste nehmen?

    List<int> IntegerListe=new List<int>();
    
    for (...)
    {
        // Irgendwelche neuen Daten erzeugen
        IntegerListe.Add(EinWeitererInteger);
    }
    
    // Kann sogar anschließend in ein normales Array gewandelt werden:
    int[] AlsArray=IntegerListe.ToArray();
    
    // und ist durchsuchbar:
    int IndexVal=IntegerListe.IndexOf(12);
    if (IndexVal<0)
    {
        // Damn! Die 12 is nicht in der Liste!
    }
    else
    {
        // Jo, die 12 ist drin an Stelle IndexVal
    }
    

    ...Integer ist hierbei nur als Beispiel zu sehen 😉



  • sieht sehr interessant aus. werde ich mir nach dem arbeiten heute mal genauer anschauen. vielen dank schon mal für deine idee!



  • Beachte: Die Klasse List ist nicht serialisierbar (falls das eine Anforderung ist). Dann würde sich ArrayList anbieten.



  • Würde ich nicht empfehlen. Wenn ein normales Array alle Anforderungen erfüllt (so hat es sich ursprünglich angehört), kann man von der List<T> immer noch ein T[] getten, nachdem alle Elemente hinzugefügt worden sind.


Anmelden zum Antworten