C# Tabelle erstellen

...komplette Frage anzeigen

4 Antworten

Condolezza? :)

Naja gleichzeitig über die Arrays iterieren (for Schleife) und mit Console.WriteLine ausgeben. Z.b. getrennt mit \t.

Also generell erstmal mit einer Schleife, z.B. For-Schleife:

for(int i = 0; i < autoliste.Length; i++) {
    Console.WriteLine(autoliste[i] + "  " + preisliste[i]);
}

Allerdings würde ich einen anderen Lösungsansatz vorschlagen:

Du erstellst dir eine Klasse, die den Namen und den Preis des Autos beinhaltet und packst das in eine Liste. Somit musst du dich nur noch um eine Liste kümmern und kannst auch eine ForEach-Schleife verwenden:

foreach(var auto in autopreisliste) {
    Console.WriteLine(auto.Name + "  " + auto.Preis);
}
PWolff 14.06.2014, 12:38

Dafür braucht man keine Klasse zu definieren, die Dictionary-Klasse reicht hierfür

0
JavaTheHutt 14.06.2014, 12:42
@PWolff

Das ist wohl Geschmackssache. Die Klasse kann man hinterher mMn einfacher erweitern, falls man noch andere Werte speichern möchte.

0
PWolff 14.06.2014, 13:00
@JavaTheHutt

Stimmt. Würde ich auch so machen, weil erfahrungsgemäß in der Praxis immer irgendwelche Erweiterungen dazukommen. Ich dachte halt, das ist eine Schülerübung.

Aber vielleicht kommt das mit dem Zusammenfassen von zusammengehörenden Daten in demselben Objekt ja noch. Vielleicht sogar eben anhand von Exceptions aufgrund schlecht verwalteter Arrays.

0
JavaTheHutt 14.06.2014, 12:40

Ergänzung: Im 1. Beispiel mit den zwei Listen/Arrays musst du sicherstellen, dass die Preisliste mindestens genau so lang ist, wie die Autoliste. Ansonsten kommt es zu einer Exception.

0
Raph101 14.06.2014, 12:40

Danke:)

0
PWolff 14.06.2014, 13:04

Um eine Tabelle darzustellen, kann man vorher die Maximallänge von auto.Name über alle auto ermitteln und in der Ausgabe die String.PadRight-Methode mit diesem Wert als 1. Argument anwenden.

0

nun wie wäres mit n dictionary ?

Wenn du bei Windows Forms bist, dann würde ich dir eine DataGridView empfehlen. Diese füllst du so:

dataGridView1.RowCount = auto.Count;
for (int i = 0; i<auto.Count; ++i)
{
    dataGridView1[0, i].Value = auto[i];
    dataGridView1[1, i].Value = preis[i];
}

Tut mir Leid, ich konnte mit dein "Condoleezza" nichts anfangen, Google spuckt da nur irgentwelchen Sch**ß aus. Wenn du Console meinst, dann mache es so wie es die anderen gesagt haben, dann wäre dies fakultativ.

Was möchtest Du wissen?