Daten im Nachhinein in einem Array speichern (C#)?
Ich habe vor kurzen erst mit dem Programmieren in C# angefangen und bin jetzt bei den Arrays angelangt. Da wollte ich mit dem neu gelernten ein paar Sachen ausprobieren und bin irgendwie dran gescheitert. Ich wollte eine Liste haben die zunächst leer ist, man wird dann gefragt seinen Namen zu schreiben und dieser soll dann automatisch gespeichert werden und wenn man will kann man dann auf die Liste zugreifen (alles in der Konsole). Wäre für jede Hilfe sehr dankbar :)
~FazonT
1 Antwort
Bei einem Array hast du das Problem, dass es beim Anlegen eine fixe Größe verlangt, die sich daraufhin nicht mehr ändern darf. Das heißt, wenn du dieses Array anlegst:
string[] names = new string[0];
ist dieses zwar leer, du kannst ihm aber auch keine Elemente zuweisen. Du müsstest die Variable stattdessen auf ein neues Array-Objekt zeigen lassen, um mehr Speicherplatz zu erlangen.
names = new string[1];
Angenommen, du hättest ein Array mit Elementen und wolltest es vergrößern, müsstest du zusätzlich Sorge dafür tragen, dass die bestehenden Daten in das neue Array mit übertragen werden. Das könnte man bspw. mit einer Schleife erledigen.
string[] names = new string[2];
names[0] = "Albert";
names[1] = "Jessica";
string[] temp = new string[3];
for (int index = 0; index < names.Length; ++index)
{
temp[index] = names[index];
}
names = temp;
Wenn man damit rechnet, dass das Array in kurzer Zeit neue Elemente immer wieder dazubekommen soll, könnte man die initiale Größe sowie die Zahl neuer Felder bei Vergrößerung heben. Zum Beispiel auf 10.
Der dynamischere / flexiblere Ansatz wäre wiederum eine tatsächliche Liste, die neue Einträge einfach hinten ankettet.
// create
IList<string> names = new List<string>();
// append
names.Add("Albert");
names.Add("Jessica");
// read
string firstName = names[0]; // Albert