将元素添加到对象数组

问题描述:

这一定非常简单,但只是没有让我的语法就在这里。假设我们有类像两个如下:将元素添加到对象数组

class Student 
{ 
    Subject[] subjects; 
} 

class Subject 
{ 
    string Name; 
    string referenceBook; 
} 

这里是我的代码:

Student univStudent = new Student(); 

现在,我想在这里,但不会增加受试者能够像做

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

如何添加项目到这个对象数组?

您可以尝试

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

或者您可以使用列表

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

我用第二种方法做了一个.ToArray () – user583126 2011-04-23 17:54:15

如果可以,用List<Subject>代替Subject[] ...这会让你做Student.Subject.Add(new Subject())。如果这是不可能的,你将不得不调整你的数组...看看Array.Resize()在http://msdn.microsoft.com/en-us/library/bb348051.aspx

你不能。但是,您可以用包含额外元素的新数组替换该数组。

但使用List<T>(使用接口IList)更容易且性能更好。每次添加项目时,List<T>都不会调整数组的大小 - 而是在需要时将其加倍。

尝试:

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

class Subject 
{ 
    string Name; 
    string referenceBook; 
} 

现在,你可以说:

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

您可以使用类的System.Array用于增加新的元素:

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

我知道这是旧的,但遇到它寻找一个更简单的方法,这就是我如何做到这一点,只是创建一个新的列表相同的对象,并将其添加到你w蚂蚁使用例如

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