it-swarm.com.de

elemente zum Objektarray hinzufügen

Das muss wirklich einfach sein, aber ich bekomme meine Syntax hier nicht richtig. Nehmen wir an, wir haben Klassen wie zwei unten:

class Student
{
    Subject[] subjects;
}

class Subject
{
    string Name;
    string referenceBook;
}

Hier ist mein Code:

Student univStudent = new Student();

Nun möchte ich hier Themen hinzufügen, aber nicht in der Lage sein, so etwas zu tun

univStudent.subjects.add(new Subject{....});

Wie füge ich diesem Objektarray Elemente hinzu?

17
user583126

Du kannst es versuchen

Subject[] subjects = new Subject[2];
subjects[0] = new Subject{....};
subjects[1] = new Subject{....};

alternativ können Sie list verwenden

List<Subject> subjects = new List<Subject>();
subjects.add(new Subject{....});
subjects.add(new Subject{....});
38
Bala R

Sie können die Klasse System.Array verwenden, um ein neues Element hinzuzufügen:

Array.Resize(ref objArray, objArray.Length + 1);
objArray[objArray.Length - 1] = new Someobject();
10
Geograph

Du kannst nicht Sie können das Array jedoch durch ein neues Array ersetzen, das das zusätzliche Element enthält.

Es ist jedoch einfacher und verbessert die Leistung, wenn Sie einen List<T> (verwendet die Schnittstelle IList) verwenden. List<T> ändert das Array nicht jedes Mal, wenn Sie ein Element hinzufügen, sondern verdoppelt es bei Bedarf.

Versuchen:

class Student
{
    IList<Subject> subjects = new List<Subject>();
}

class Subject
{
    string Name;
    string referenceBook;
}

Jetzt kannst du sagen:

someStudent.subjects.Add(new Subject());
6
Lasse Espeholt

Wenn Sie können, verwenden Sie einen List<Subject> anstelle von Subject[].... Dadurch können Sie Student.Subject.Add(new Subject()) ausführen. Wenn dies nicht möglich ist, müssen Sie die Größe Ihres Arrays ändern. Sehen Sie sich Array.Resize () unter http://msdn.Microsoft.com/de-de/library/bb348051.aspx an

2
NateTheGreat

Ich weiß, das ist alt, aber ich habe es auf einen einfacheren Weg gefunden, und so mache ich es. Erstellen Sie einfach eine neue Liste desselben Objekts und fügen Sie es dem Objekt hinzu, das Sie verwenden möchten, z. 

Subject[] subjectsList = {new Subject1{....}, new Subject2{....}, new Subject3{....}} 
univStudent.subjects = subjectsList ;
0