Array zur Laufzeit erstellen

MichiStroi

Erfahrenes Mitglied
Hallo!

Analog zum Thema Steuerelemente... hab auch ich eine Frage:
Ich bin gerade dabei ein bischen an Arrays herumzubasteln und möchte eine x-beliebige anzahl von Arrays zur Laufzeit erzeugen.
Die Namen sollten folgende Form haben:
----------------------
int Dimmension; // dimmensioniert meine Arrays

y1[Dimmension]
y2[Dimmension]
:
:
:
y[x][Dimmension]
----------------------
Das muss doch irgendwie gehen oder?

Danke fürs Helfen!
Grüße
Michi
 
Hi.

Würde dir dazu zu einem ArrayList raten, in dem du dann die neuen Arrays speicherst. Bei einem normalen Array hast du das Problem das diesen eine fixe Größe zugeteilt werden muss.

Das folgende Beispiel veranschaulicht die Verwendung.

Code:
using System;
using System.Collections;

public class MyClass
{
	public static void Main()
	{
		ArrayList alist = new ArrayList();
		string lb = Environment.NewLine;
		
		Console.WriteLine("----------------------------------------");
		Console.WriteLine("Jede eingegebene Zeile wird in ihre" + lb
				+ "einzelnen Zeichen aufgeteilt und als" + lb
				+ "Array gespeichert. Zum Beenden der" + lb
				+ "Schleife, drücken Sie einfach die Enter" + lb
				+ "Taste, danach werden die Elemente wieder" + lb
				+ "ausgegeben.");
		Console.WriteLine("----------------------------------------");
		
		int count = 0;
		while (true)
		{
			Console.Write(" #" + count + "\t");
			string line = Console.ReadLine();
			
			if (line.Trim().Length == 0)
				break;
				
			alist.Add(line.ToCharArray());
			count++;
		}
		
		// Ausgabe der Arrays..
		Console.WriteLine("----------------------------------------");
		Console.WriteLine(" ID\tLänge\tInhalt");
		Console.WriteLine("\t\t0 1 2 3 4 5 6 7 8 9 ...");
		Console.WriteLine("----------------------------------------");
		
		for (int i = 0; i < alist.Count; i++)
		{
			char[] ca = (char[]) alist[i];
			Console.Write(" #" + i + "\t" + ca.Length + "\t");
			foreach (char c in ca)
			{
				Console.Write(c + " ");
			}
			Console.WriteLine();
		}
		Console.WriteLine("----------------------------------------");
		Console.WriteLine("Zum Beenden Eingabetaste betätigen...");
		Console.ReadLine();
	}
	
	public MyClass()
	{
				
	}
}

MfG,
Alex
 
Erstmals Danke für deine rasche Antwort.
Habe das Programmchen gerade analysiert.

Eine Frage hätt ich da aber noch...

Wie kann ich die ArrayLists benennen?
ich hab das ähnlich wie bei den Textboxen (siehe Thread: Steuerelemente zur Laufzeit erstelle) versucht. hat aber nicht klappen wollen.

Danke
Grüße
Michi
 
Wie genau meinst denn das mit "die ArrayLists benennen"?
ArrayList hast ja nur eine, und da drinnen sind halt Arrays gespeichert. Die Namen der Arrays die du reingibst ist eigentlich egal, du greifst auf sie dann ja entweder über die ArrayList zu mittels eines Indexers, oder gibst der Objektinstanz einen neuen Namen.

Wennst was anderes meinst, verdeutliche es bitte mehr. *g*
 
Zurück