2011-04-23 134 views
14

這一定非常簡單,但只是沒有讓我的語法就在這裏。假設我們有類像兩個如下:將元素添加到對象數組

class Student 
{ 
    Subject[] subjects; 
} 

class Subject 
{ 
    string Name; 
    string referenceBook; 
} 

這裏是我的代碼:

Student univStudent = new Student(); 

現在,我想在這裏,但不會增加受試者能夠像做

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

如何添加項目到這個對象數組?

回答

34

您可以嘗試

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

6

你不能。但是,您可以用包含額外元素的新數組替換該數組。

但使用List<T>(使用接口IList)更容易且性能更好。每次添加項目時,List<T>都不會調整數組的大小 - 而是在需要時將其加倍。

嘗試:

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

class Subject 
{ 
    string Name; 
    string referenceBook; 
} 

現在,你可以說:

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

您可以使用類的System.Array用於增加新的元素:

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

我知道這是舊的,但遇到它尋找一個更簡單的方法,這就是我如何做到這一點,只是創建一個新的列表相同的對象,並將其添加到你w螞蟻使用例如

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