[C#] Mehrdimensionales Array unbekannter größe benötigt

meilon

Erfahrenes Mitglied
Hallo!

Für ein Projekt muss ich Daten zwischenspeichern (so ein zufall :D)

Ein Beispiel (wie ich es in PHP gelöst hätte, fällt mir am leichtesten)
PHP:
<?
//Wir haben mehrere Profile, die haben einen Namen und haben unterschiedliche Einstellungen mit Werten unterschiedlichen Datentyps

arrProfiles = array();
arrProfiles[0] = array(
	"Name" => "Profile 1", 
	"Settings" => array(
		"Enabled" => false, 
		"Size" => 25.3, 
		"StringSetting" => "Irgend ein Text"
	)
);
arrProfiles[1] = array(
	"Name" => "Profile 2", 
	"Settings" => array(
		"WonderValue" => 4711, 
		"AnObjectSetting" => new MyClass(5,"la")
	)
);
.
.
.
?>

Naja, das Problem ist nun, lohnt sich ein eigener Datentyp (wenn ja, wie geht das?) oder kann man das noch über mehrere Variablen lösen? Und wie mache ich das mit den Arraygrößen? Ein User könnte theoretisch 15524437437373737 Profile haben, kann man die Arraygröße neu setzten? Und funktioniert das mit dem String als Index in C#?

MfG
 

DirkHo

Erfahrenes Mitglied
Hi,

die Größe neu setzen kannst du nicht. Du mußt das quasi "simulieren", also in dem du die Inhalte des einen Arrays (das die Daten beinhaltet) in ein temporär angelegtes kopierst das die Größe Array1.Length() + 1 hat und von dort kopierst du sie dann wieder in das alte zurück.

Gruß,

Dirk
 

Christian Kusmanow

Erfahrenes Mitglied
So ein Schwachsinn. (Du bist nicht gemeint DirkHo) Erstelle Business-Objekte für die Settings. Also Klassen oder Strukturen. Kannst es Dir aber auch gerne kompliziert machen und weiterhin mit Hashtables herumwurschteln. OMFG

Als Sammlung kannst entweder ArrayLists (List<MyType>) oder Hashtables (Dictionary<MyKeyType><MyValueType>) verwenden.

Die folgen Threads bitte mal durcharbeiten :)
[thread=259673][VC++.NET] Arbeiten mit Generic::List / Array - Thread[/thread]
[thread=232634]Array "Sortieren" - Thread[/thread]
 
Zuletzt bearbeitet: