C# einer Variable mehrere Werte zuweisen?

... komplette Frage anzeigen

6 Antworten

Du erstellst eine Klasse "Note", in der auch der Typ der Aufgabe enthalten* ist.

In Deiner "Fach"-Klasse (Basisklasse zu Hauptfach und Nebenfach) definierst du eine Variable "List<Note> noten". In die kannst Du dann die jeweiligen Noten eintragen.

* Alternativ kannst Du natürlich spezialisierte Klassen von Note ableiten.

Antwort bewerten Vielen Dank für Deine Bewertung

Du kannst ein Array erstellen:

int[] myArray = new int[123];

Oder eine Liste:

List<int> myList = new List<int>();

Das Array hat eine feste Größe, die nach dem Erstellen nicht mehr geändert werden kann, bei der Liste kannst Du Elemente hinzufügen oder entfernen.

Die Noten und die Aufgabe in solchen Listen zu sammeln ist aber keine gute Idee.

Besser wäre ein Klasse, die z.B. ein Arbeitsergebnis darstellt. Dort hast Du ein Objekt für die Arbeit, eine Klausur, Test, etc. und daneben hast Du noch die Note, die der Schüler bekommen hat.

Von Objekten dieser Klasse kannst Du dann eine Liste pflegen.

Außerdem solltest Du Haupt- und Nebenfach nicht seperat haben. Dafür gibt es die Konzepte der Objektorientierung. Du kannst eine Basisklasse "Fach" definieren, darin werden die Noten verwaltet und andere Dinge getan, die für alle Fäche gelten. Haupt- und Nebenfach sind dann Ableitungen davon. Dort kannst Du dann das machen, was für die beiden Varianten besonders ist. Dafür sind die Stichworte Operatoren "virtual" und "override" ein Blick wert.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Anonym37461
10.09.2016, 17:45

Das mit der basisklasse Fach hab ich gemacht (leider nicht erwähnt, sry) 

Du meinst also im Prinzip sollte ich lieber die Klassen Schulaufgaben, Stegreifaufgabe etc machen und als jede einzelne Note dann jeweils ein Objekt der klasse machen welches dann in einer Liste gespeichert wird? 

0

Dafür verwendet du am besten die Klasse List aus dem Namespace System.Collections.Generic. Mit den Methoden Add, AddRange, Remove kannst du neue Werte hinzufügen bzw. löschen. Da List das IEnumerable Interface implementiert kannst simple mit einer foreach Schleife die Elemente iterieren und auch Linq anwenden.

Antwort bewerten Vielen Dank für Deine Bewertung

Das kannst du mit Arrays realisieren :) Durch Arrays kann man mehrere Werte unter einem Variablennamen speichern, doch keine Angst: Du kannst sie trotzdem noch voneinander differenzieren :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PWolff
10.09.2016, 02:10

Wenn die Anzahl vorher nicht bekannt ist, empfehle ich Listen

List<Typ>

lässt sich wie ein Array handhaben, hat aber Vorteile, wenn es erweitert werden muss (inzwischen vielleicht nicht mehr - wenn Typname[] nur noch ein Alias für List<Typname> ist)

2

Schonmal von Arrays gehört? Mit C# habe ich noch keine Erfahrungen, aber die Syntax kannst du ja googeln.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich wprde das so lösen:

List<int> intliste = new List<int>();

intliste.Add(8);

intliste.Add(1);

intliste.Add(2);

int i1 = intliste[0]; 

int i2 = intliste[1];

int i3 = intliste[2];

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?