将元素添加到对象数组

时间:2011-04-23 17:36:26

标签: c# arrays collections

这一定非常简单但只是没有让我的语法在这里。假设我们在下面有两个类:

class Student
{
    Subject[] subjects;
}

class Subject
{
    string Name;
    string referenceBook;
}

这是我的代码:

Student univStudent = new Student();

现在,我想在这里添加主题但不能执行类似

的操作
univStudent.subjects.add(new Subject{....});

如何向此对象数组添加项目?

5 个答案:

答案 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 ;