Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向对象数组添加元素_C#_Arrays_Collections - Fatal编程技术网

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 ;