Laden...

Dynamische multidimensionale Liste: Was kann ich dafür verwenden?

Erstellt von The-Forgotten vor 13 Jahren Letzter Beitrag vor 13 Jahren 812 Views
T
The-Forgotten Themenstarter:in
17 Beiträge seit 2010
vor 13 Jahren
Dynamische multidimensionale Liste: Was kann ich dafür verwenden?

Hallo,

gibt es eine Möglichkeit eine Multidimensionale ArrayList zu erstellen?

Sprich, eine List mit x (x ist dynamisch und unbekannt) Objekten, welche sich wieder in einer List mit y ( y ist dynamisch und unbekannt) Listen befindet?

Oder sollte ich was anderes dafür nehmen, wenn ja, was?

mfG The-Forgotten

S
902 Beiträge seit 2007
vor 13 Jahren

Hallo,

du solltest generische Colelctions verwenden, zum Beispiel List<T>.
Würde soetwas gehen List<List<deinTyp>>.

mfg
serial

T
The-Forgotten Themenstarter:in
17 Beiträge seit 2010
vor 13 Jahren

Klingt schonmal gut ... wie füge ich da Elemente in die "erste Dimension" und wie welche in die "zweite Dimension" hinzu?

mfG The-Forgotten

S
902 Beiträge seit 2007
vor 13 Jahren

Hallo,

schau mal List(T)-Klasse (System.Collections.Generic).

mfg
serial

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo The-Forgotten,

der Vollständigkeit halber hier der Thread, in dem erklärt wird, weshalb ArrayList in die Mottenkiste gehört: List<T> statt ArrayList?.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

T
The-Forgotten Themenstarter:in
17 Beiträge seit 2010
vor 13 Jahren

Also ich habe das jetzt so gemacht


List<List<String>> menuInformation = new List<List<string>>();

privat void abc()
{
         List<String> l = new List<String>();
         l.Add("TEST");
         menuInformation.Add(l);
}

Nun müsste ich ja wieder wissen wie viele List<String> Elemente es gibt oder?
Und deren Anzahl ist sowohl unbekannt(am Anfang) als auch dynamisch(die ganze Zeit) :S

Ich kann zwar so meine Elemente einspeichern, nur das auslesen stell ich mir ein wenig arg aufwendig vor ...

mfG The-Forgotten

309 Beiträge seit 2008
vor 13 Jahren

Klassischer Weise geht das über zwei ineinander verschachtelten Schleifen, oder natürlich auch direkt:


            List<List<String>> menuInformation = new List<List<string>>();

            List<String> l = new List<String>();
            l.Add("TEST");
            menuInformation.Add(l);

            string test = menuInformation[0][0];

            foreach (List<string> innerList in menuInformation)
            {
                int anzahl = innerList.Count;
                foreach (string element in innerList)
                {
                    MessageBox.Show(element);
                }
            }
using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo The-Forgotten,

nach den geschilderten Anforderungen passt List<List<T>> zu ziemlich genau.

Nun müsste ich ja wieder wissen wie viele List<String> Elemente es gibt oder?

Nein, dass musst du nicht (vorher) wissen, weil eine List<> ja gerade dynamisch wachsen kann.

Und deren Anzahl ist sowohl unbekannt(am Anfang) als auch dynamisch(die ganze Zeit)

Kein Problem.

nur das auslesen stell ich mir ein wenig arg aufwendig vor

Aufwändig vom Code her? Nein, wie das Beispiel von Scavanger zeigt. Oder aufwändig von der Laufzeit her? Wenn du nicht gerade sehr große Datenmengen hast bzw. nicht gerade ungewöhnlich oft auf die Daten zugreifen musst, sollte es auch hier keine Problem geben.

herbivore