C# 向对象数组添加元素
这一定很简单,只是我的语法不正确。假设我们有如下两个类:C# 向对象数组添加元素,c#,arrays,collections,C#,Arrays,Collections,这一定很简单,只是我的语法不正确。假设我们有如下两个类: class Student { Subject[] subjects; } class Subject { string Name; string referenceBook; } 这是我的密码: Student univStudent = new Student(); 现在,我想在这里添加主题,但无法执行以下操作 univStudent.subjects.add(new Subject{....}); 如
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{....});
列出主题=新建列表();
主题。添加(新主题{……});
主题。添加(新主题{……});
如果可以,请使用列表
而不是主题[]
。。。这将允许您执行Student.Subject.Add(new Subject())
。如果这是不可能的,你将不得不调整你的数组。。。看看Array.Resize()在你不能。但是,可以使用包含额外元素的新数组替换该数组
但是使用列表
(使用接口IList
)来实现这一点更容易,并提供更好的性能<代码>列表不会在每次添加项目时调整数组大小,而是在需要时将其加倍
尝试:
可以使用类System.Array添加新元素:
Array.Resize(ref objArray, objArray.Length + 1);
objArray[objArray.Length - 1] = new Someobject();
我知道这很旧,但我在寻找一种更简单的方法时遇到了它,我就是这样做的,只需创建一个相同对象的新列表,并将其添加到您想要使用的列表中,例如
Subject[] subjectsList = {new Subject1{....}, new Subject2{....}, new Subject3{....}}
univStudent.subjects = subjectsList ;
我使用了第二种方法,并做了一个.ToArray()
subjects.add
可能需要是subjects.add
Array.Resize(ref objArray, objArray.Length + 1);
objArray[objArray.Length - 1] = new Someobject();
Subject[] subjectsList = {new Subject1{....}, new Subject2{....}, new Subject3{....}}
univStudent.subjects = subjectsList ;