将元素添加到对象数组
问题描述:
这一定非常简单,但只是没有让我的语法就在这里。假设我们有类像两个如下:将元素添加到对象数组
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{....});
答
如果可以,用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 ;
我用第二种方法做了一个.ToArray() –
user583126
2011-04-23 17:54:15