string[,] array dynamisch vergrößern
-
hallo,
bin seit neuestem auf C# umgestiegen. was ich da jedoch vermisse (oder noch nicht gelernt habe), ist die danamische speicherverwaltung.
Problematik: Angenommen, ich initalisiere eine stringarray mitstring[,] array = new string[1,1];
und will da zB eine 5x8 Matrix (wobei die Größe nicht absehbar ist) schreiben, so hätte ich in C++ die array dynamisch vergrößert. Hier weiß ich leider nicht wie???
Kann mir jemand helfen? Wenn das doch nicht geht, gibt es Array Objekte, die mehrdimensionale arrays jeden types aufnehmen kann und dynamisch wächst???
Danke um Hilfe,
Gru: Garry
-
int A = 5; int B = 7; // A | B aendern string[,] array = new string[A,B];
geht das nicht?
amsonsten nimm ne DataTable - das geht auf jeden fall
gehen nicht auch zwei generische listen ?List<List<string>> arr;
weiss ich grad ausn kopf nich
-
zwei listen gehen auch nicht, da die zweite dynamisch und bei bedarf erzeugt werden müsste. ne datatable hört sich gut an, ist sie mehrdimensional dynamisch? und kann man die danach in ein string[,], event. string[,,] umkonventieren?
Gruß,
Garry
-
wups - gar nicht gesehen das du schon was antwortetest
noch fragen offen ?eine DataTable kannst du mit DataColumn und DataRow jederzeit erweitern - beispielcode findest du in der msdn
aber - in c++ wuerde man auch ein neues groesseres array erstellen und die elemente umkopieren um das feld dynamisch zu vergroessern
so kannst du doch in c# auch verfahren// pseudo, geht bestimmt auch besser
string[,] arr = new string[1,1]; // small array arr = Increase(arr, 1, 1, 5, 5); // increased array internal string[,] Increase[string[,] arrOld, int xOld, int yOld, int xNew, int yNew) { string[,] arrNew = new string[yNew,xNew]; for(int y = 0; y < yOld; ++y) for(int x = 0; x < xOld; ++x) arrNew[y,x] = arrOld[y,x]; return arrNew; }