添加元素到对象数组

本文关键字:数组 对象 元素 添加 | 更新日期: 2023-09-27 17:52:16

这一定很简单,但这里没有得到我的语法。假设我们有如下两个类:

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

List<Subject> subjects = new List<Subject>();
subjects.Add(new Subject{....});
subjects.Add(new Subject{....});
// Then you can convert the List to Array like below:
Subject[] arraySubjects = subjects.ToArray<Subject>() 

可以使用class System。

添加新元素的数组
Array.Resize(ref objArray, objArray.Length + 1);
objArray[objArray.Length - 1] = new Someobject();

你不能。但是,您可以用包含额外元素的新数组替换该数组。

但是使用List<T>(使用接口IList)更简单,性能更好。List<T>不会在每次添加项目时调整数组大小-而是在需要时将其加倍。

试题:

class Student
{
    IList<Subject> subjects = new List<Subject>();
}
class Subject
{
    string Name;
    string referenceBook;
}

现在你可以说:

someStudent.subjects.Add(new Subject());

如果可以,使用List<Subject>而不是Subject[]…这将允许您执行Student.Subject.Add(new Subject())。如果这是不可能的,你将不得不调整你的数组大小…查看Array.Resize() at http://msdn.microsoft.com/en-us/library/bb348051.aspx

我知道这是旧的,但遇到它寻找一个更简单的方式,这就是我怎么做的,只是创建一个新的列表相同的对象,并将其添加到一个你想使用的,例如

Subject[] subjectsList = {new Subject1{....}, new Subject2{....}, new Subject3{....}} 
univStudent.subjects = subjectsList ;

您可以将其转换为ToList(),添加然后转换回ToArray()

var subjectList = univStudent.subjects.ToList();
subjectList.Add(new Subject());
univStudent.subjects = subjectList.ToArray();

您可以按如下方式创建列表。

List<Subject> allDestek = new List<Subject>() {
   new Subject(){ ID = 1, Name = "aaaa"},
   new Subject(){ ID = 2, Name = "bbbb"},
   new Subject(){ ID = 2, Name = "cccc"},
   new Subject(){ ID = 2, Name = "dddd"}
 };
 allSubject.ToArray()

如果数据来自某处(EF,SQL),您可以将其添加到表中,如下所示:

Stutent[] allStudent = _dataRepository.Subjectes.ToArray();