这一定非常简单但只是没有让我的语法在这里。假设我们在下面有两个类:
class Student
{
Subject[] subjects;
}
class Subject
{
string Name;
string referenceBook;
}
这是我的代码:
Student univStudent = new Student();
现在,我想在这里添加主题但不能执行类似
的操作univStudent.subjects.add(new Subject{....});
如何向此对象数组添加项目?
答案 0 :(得分:39)
你可以尝试
Subject[] subjects = new Subject[2];
subjects[0] = new Subject{....};
subjects[1] = new Subject{....};
或者你可以使用List
List<Subject> subjects = new List<Subject>();
subjects.add(new Subject{....});
subjects.add(new Subject{....});
答案 1 :(得分:10)
您可以使用System.Array类添加新元素:
Array.Resize(ref objArray, objArray.Length + 1);
objArray[objArray.Length - 1] = new Someobject();
答案 2 :(得分: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());
答案 3 :(得分:2)
如果可以,请使用List<Subject>
代替Subject[]
...这样您就可以Student.Subject.Add(new Subject())
。如果那是不可能的,你将不得不调整你的数组的大小...在http://msdn.microsoft.com/en-us/library/bb348051.aspx看看Array.Resize()
答案 4 :(得分:0)
我知道这是旧的,但遇到它寻找一种更简单的方法,这就是我这样做的方法,只需创建一个相同对象的新列表并将其添加到您想要使用的对象中,例如
Subject[] subjectsList = {new Subject1{....}, new Subject2{....}, new Subject3{....}}
univStudent.subjects = subjectsList ;