Laden...

5-dimensionales Array

Erstellt von chanderegg vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.269 Views
C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 14 Jahren
5-dimensionales Array

Hallo zusammen

Ich soll ein 5-dimensionales Array erstellen, wobei 2 dimensionen keine bestimmte Länge besitzen.
Irgendwie bringe ich es nicht fertig. Im Netz findet man höchstens 2-dimensionale Array und diese Versionen (von msdn oder galileo etc.) funktionieren bei mir irgendwie nicht.

kann mir jemand erklären, wie ich so ein Array erstelle?

Vielen Dank für eure Hilfe

6.911 Beiträge seit 2009
vor 14 Jahren

Hallo,

verwende statt einem mehrdimensionalen Array ein jagged Array.

Das ist sozusagen ein Array von Arrays. Dadurch ist die Dimension jeder Zeile unabhängig voneinander.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
13 Beiträge seit 2009
vor 14 Jahren

Willst du das in diese Richtung?



int[, , , ,] test;
test[0, 0, 0, 0, 0] = 1;
test[0, 0, 0, 0, 1] = 2;

C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 14 Jahren

genau so sollte es werden aber muss man das Array nicht zuvor noch initialisieren?

etwa so:


int[, , , ,] test = new int[10, 20, 30, 40, 50]; //<-Das geht
int[, , , ,] test2 = new int[, , 30, 40, 50]; //So möchte ich es (geht nicht)

5.742 Beiträge seit 2007
vor 14 Jahren

etwa so

Bist du dem Link von gfoidl gefolgt?

6.911 Beiträge seit 2009
vor 14 Jahren

Bist du dem Link von gfoidl gefolgt?

Ist wohl ein rhetorische Frage von dir?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

5.742 Beiträge seit 2007
vor 14 Jahren

Ist wohl ein rhetorische Frage von dir?

Ja!

C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 14 Jahren

ja. leider fehlt auch dort wieder der ansatz des dynamischen Arrays.

hab mal versucht ein jagged Array aus ArrayLists zu machen. bin aber leider gescheitert

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo chanderegg,

ja. leider fehlt auch dort wieder der ansatz des dynamischen Arrays.

warum? Es ist doch beschrieben, wie Arrays verschiedener Längen verwendet werden.

hab mal versucht ein jagged Array aus ArrayLists zu machen. bin aber leider gescheitert ArrayList solltest du durch List<T> ersetzen. s. List<T> statt ArrayList?.

m0rius

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

C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 14 Jahren

warum? Es ist doch beschrieben, wie Arrays verschiedener Längen verwendet werden.

ja aber nicht wie eins mit unbestimmter länge definiert wird. deshalb brauche ich ja arrayList oder eben wie empfohlen List<>.

kann mir jemand erklären wie ich diese Listobjekte miteinander verknüpfe? Wird bei 5 Dimensionen verdammt kompliziert.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo chanderegg,

wieso kompliziert?

List<List<List<List<List<T>>>>>

herbivore

K
593 Beiträge seit 2007
vor 14 Jahren

Hallo chanderegg,

hier ein Beispiel was du hoffentlich verstehst:



using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication14
{
    class Program
    {
        static void Main(string[] args)
        {
            List<List<string>> meineliste = new List<List<string>>();

            meineliste.Add(new List<string>());
            meineliste.Add(new List<string>());

            meineliste[0].Add("Hallo");
            meineliste[1].Add("chanderegg");

            Console.Write(meineliste[0][0] + " " + meineliste[1][0]);

            Console.ReadLine();
        }
    }
}

Viele Grüße

Kaji

H
13 Beiträge seit 2009
vor 14 Jahren

genau so sollte es werden aber muss man das Array nicht zuvor noch initialisieren?

etwa so:

  
C#-Code:   
int[, , , ,] test = new int[10, 20, 30, 40, 50]; //<-Das geht  
int[, , , ,] test2 = new int[, , 30, 40, 50]; //So möchte ich es (geht nicht)  
  

Schuldinugn das ich diesen Post noch mal aufgreife.

Das das nicht Funktioniert liegt daran das du im unteren Bsp. nicht allen Dimensionen eine größe gibst.


int[, , , ,] test2 = new int[1,1, 30, 40, 50]; 

So sollte es funktionieren.

916 Beiträge seit 2008
vor 14 Jahren

Das weiß der das es deswegen nicht ging. Lies doch einfach die Zeile drüber dort hat er es doch mit


int[, , , ,] test = new int[10, 20, 30, 40, 50]; //<-Das geht

versucht. Jetzt kommst du an und sagst so hie rgeht es:


int[, , , ,] test2 = new int[1,1, 30, 40, 50]; 

Soll das ein Witz sein? Den versteh ich nämlich nicht.
Aber zu der eigentlichen Frage wie man eine Array mit 5 Dimensionen erstellt wobei dir länge einzellner Dimensionne variabel ist, hat herbivore doch die optimale Lösung gegeben.


List<List<List<List<List<T>>>>>

Again what learned...

H
13 Beiträge seit 2009
vor 14 Jahren

Nein das soll kein Witz sein. Und das er auch schon eine Lösung gefunden hat weis ich auch.

Es ging mir einfach nur darum das ich nur kurz erläutern wollte warum der Code nicht Funktioniert.