C# Csharp (Konsolenanwendung). Frage bezüglich String Arrays. Kann mir wer helfen?
Hallo Leute. Ich möchte ein "Artikel Erfassung-Programm" erstellen. In diesem Programm muss ich 5 Optionen einbauen. (bei Eingabe im Hauptmenü)
1 = Artikel erfassen / 2 = Erfasste Artikel anzeigen / 3 = Menge der Artikel / 4 = Artikel Suchen / 5 = Artikel Löschen / q = Programm Beenden
Ich weis wie man anfängt, aber ich kann genau einen Artikel abspeichern. Ich weis nicht wie ich mehrere Artikel abspeichern kann. Ich habe mal was von String[] Arrays gehört weis aber nicht wie es Funktioniert :/ Habe auch schon sehr lange Recherchiert habe aber nichts passendes gefunden... (PS: Arbeite seit 1 Monat mit Csharp)
Danke jetzt schon mal für eure Hilfe :)

3 Antworten
Für deine Anforderungen eignet sich eine Liste am besten, da du ohne viel Programmieraufwand Elemente einfügen, löschen etc. kannst.
// Liste erstellen var articles = new List<string>();
// Elemente einfuegen var myArticle = "Brot"; articles.Add(myArticle);
// Element loeschen var articleToDelete = "Brot"; articles.Remove(articleToDelete);
// Anzahl der Elemente bekommen var cnt = articles.Count();
// Elemente in der Liste suchen var articleToFind = "Brot"; var result = articles.Find(x => x.EqualsIgnoreCase(articleToFind).ToList();
Die Variable result ist wiederum eine Liste, die die gefunden Artikel entält.
// Alle Artikel ausgeben/iterieren foreach(var article in articles) { // in article ist der aktuelle Artikel Console.WriteLine("Artikel: {0}", article); }
Arrays eignen sich am besten für Listen, deren Länge sich nicht ändert.
// Deklaration:
String[anzahl_Artikel] artikelliste;
// Zu beachten: anzahl_Artikel sollte am Anfang bekannt sein
// Verwendung
// Zuweisen eines Elements
artikelliste[i] = artikelname; // 0 <= i && i < anzahl_Artikel
// Auslesen eines Elements z. B.
Console.WriteLine(artikelliste[i]);
Für Listen, die nach ihrer Erzeugung erweitert werden, nimm am besten eine dynamische Liste:
// Deklaration und Initialisierung
System.Collections.Generic.List<String> artikelliste = new System.Collections.Generic.List<String>();
// Verwendung
// Anhängen eines neuen Elements
artikelliste.Add(artikelname);
// Auslesen eines Elements z. B.
Console.WriteLine(artikelliste[i]);
(Letztlich dürfte das keine Rolle spielen, da beide Möglichkeiten System.Collections.Generic.IList<String> implementieren und vermutlich intern gleich implementiert sind.)
Der Code wird hier leider nicht ordentlich formatiert :(
Ich glaube das sollte reichen ;)
Methoden für diese "hochkomplexen" Operationen wie die Anzahl der Elemente der Liste zu bekommen sind zu viel des guten, da sie ohnehin nur Einzeilerer sind. Das gleiche gilt fürs Einfügen, Löschen etc. Außerdem brauchst du, z.B. beim Einfügen, nicht die Liste extra mit return zurückgeben, da das Element sowieso in der gleichen Liste eingefügt wird.
Hey Boboo1234 :)
Ich bedanke mich für deinen hilfreichen beitrag! :)
Liebe grüsse und schöne Festtage :)
PwngyHD
Hab mir grade mal das Bild näher angesehen - es würde mich wundern, wenn es funktioniert, wenn im "switch"-Statement "default" an erster Stelle kommt. (default passt nämlich auf alles.)