web-dev-qa-db-fra.com

ajouter des éléments à un tableau d'objets

Cela doit être très simple mais ne pas comprendre ma syntaxe ici. Disons que nous avons des classes comme deux ci-dessous:

class Student
{
    Subject[] subjects;
}

class Subject
{
    string Name;
    string referenceBook;
}

Voici mon code:

Student univStudent = new Student();

Maintenant, je veux ajouter des sujets ici, mais pas capable de faire quelque chose comme

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

Comment puis-je ajouter des éléments à ce tableau d'objets?

17
user583126

Tu peux essayer

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

vous pouvez également utiliser la liste

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

Vous pouvez utiliser la classe System.Array pour ajouter un nouvel élément:

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

Tu ne peux pas. Cependant, vous pouvez remplacer le tableau par un nouveau contenant l'élément supplémentaire.

Mais il est plus facile et plus performant d’utiliser un List<T> (utilise l’interface IList) pour cela. List<T> ne redimensionne pas le tableau chaque fois que vous ajoutez un élément, mais le double en cas de besoin.

Essayer:

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

class Subject
{
    string Name;
    string referenceBook;
}

Maintenant vous pouvez dire:

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

Si vous le pouvez, utilisez un List<Subject> au lieu de Subject[]... Cela vous permettra de faire Student.Subject.Add(new Subject()). Si ce n'est pas possible, vous devrez redimensionner votre tableau ... consultez Array.Resize () à http://msdn.Microsoft.com/en-us/library/bb348051.aspx

2
NateTheGreat

Je sais que c’est vieux, mais j’ai trouvé un moyen plus simple et c’est comme cela que je le fais. Il suffit de créer une nouvelle liste du même objet et de l’ajouter à celui que vous voulez utiliser, par exemple. 

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