2011-04-23 12 views
14

Esto debe ser muy simple, pero no estoy obteniendo mi sintaxis aquí. supongamos que tenemos clases como dos abajo:agregar elementos a la matriz de objetos

class Student 
{ 
    Subject[] subjects; 
} 

class Subject 
{ 
    string Name; 
    string referenceBook; 
} 

Aquí está mi código:

Student univStudent = new Student(); 

Ahora, quiero añadir temas aquí, pero no es capaz de hacer algo como

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

¿Cómo agrego elementos a esta matriz de objetos?

Respuesta

34

Usted puede intentar

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

Alternativamente, puede utilizar la lista

List<Subject> subjects = new List<Subject>(); 
subjects.add(new Subject{....}); 
subjects.add(new Subject{....}); 
+3

utilicé la 2 ª vía e hice una .ToArray () – user583126

6

No puede. Sin embargo, puede reemplazar la matriz por una nueva que contenga el elemento extra.

Pero es más fácil y ofrece un mejor rendimiento para usar un List<T> (usa la interfaz IList) para esto. List<T> no cambia el tamaño de la matriz cada vez que agrega un elemento, sino que lo duplica cuando es necesario.

Probar:

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

class Subject 
{ 
    string Name; 
    string referenceBook; 
} 

Ahora usted puede decir:

someStudent.subjects.Add(new Subject()); 
9

Usted puede utilizar System.array clase para agregar nuevo elemento:

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

Sé que esto es viejo, pero lo encontré buscando una forma más simple, y así es como lo hago, solo crea una nueva lista del mismo objeto y agrégala a la que quieras y para usar, p.

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