C# 如何创建要列出的对象数组
我有两门课。1被称为雇员。另一个是我的“主要”。我试图获取一个列表,并将列表中的每个值分配给Employee对象数组C# 如何创建要列出的对象数组,c#,list,object,C#,List,Object,我有两门课。1被称为雇员。另一个是我的“主要”。我试图获取一个列表,并将列表中的每个值分配给Employee对象数组 //Inside "Main" class int counter = NameList.Count; Employee[] employee = new Employee[counter]; for (int i = 0; i <= counter; i++) { employee[i].Name
//Inside "Main" class
int counter = NameList.Count;
Employee[] employee = new Employee[counter];
for (int i = 0; i <= counter; i++)
{
employee[i].Name = NameList[i];
employee[i].EmpNumber = EmpNumList[i];
employee[i].DateOfHire = DOHList[i];
employee[i].Salary = SalaryList[i];
employee[i].JobDescription = JobDescList[i];
employee[i].Department = DeptList[i];
}
//在“Main”类中
int counter=NameList.Count;
员工[]员工=新员工[柜台];
对于(int i=0;i以及需要为数组的每个元素创建Employee
的实例,此行还有一个错误:
for (int i = 0; i <= counter; i++)
对于(int i=0;i以及需要为数组的每个元素创建Employee
的实例,此行还有一个错误:
for (int i = 0; i <= counter; i++)
for(int i=0;i您已经为引用创建了一个带有空格的数组,但是您还没有创建任何Employee
实例。您所有的Employee[i]
都是null
。它应该是:
for (int i = 0; i < counter; i++)
{
var emp = new Employee();
emp.Name = NameList[i];
emp.EmpNumber = EmpNumList[i];
emp.DateOfHire = DOHList[i];
emp.Salary = SalaryList[i];
emp.JobDescription = JobDescList[i];
emp.Department = DeptList[i];
employee[i] = emp;
}
for(int i=0;i
或(更整洁)
for(int i=0;i
您已经为引用创建了一个带有空格的数组,但是您还没有创建任何Employee
实例。所有Employee[i]
都是null
。它应该是:
for (int i = 0; i < counter; i++)
{
var emp = new Employee();
emp.Name = NameList[i];
emp.EmpNumber = EmpNumList[i];
emp.DateOfHire = DOHList[i];
emp.Salary = SalaryList[i];
emp.JobDescription = JobDescList[i];
emp.Department = DeptList[i];
employee[i] = emp;
}
for(int i=0;i
或(更整洁)
for(int i=0;i
员工未初始化,请将其添加到每个迭代的开头:
employee[i] = new Employee();
您正在访问未分配给您的索引
替换此项:
int i=0;iEmployee未初始化,请将其添加到每个迭代的开头:
employee[i] = new Employee();
您正在访问未分配给您的索引
替换此项:
int i=0;i这里有一件事很突出。在每次迭代开始时,您并没有将employee[i]
声明为new employee
,因此除了所有其他事情,您将得到一个NullReferenceException
(正如Marc Gravell所指出的,一件事在这里很突出。在每次迭代开始时,您不会将employee[i]
声明为新员工
,因此除此之外,您将得到一个NullReferenceException
(正如Marc Gravell所指出的,您只是新建一个Employee类型的数组,数组中的元素都将为null。您需要为每个元素新建一个Employee对象。您只是新建一个Employee类型的数组,数组中的元素都将为null。您需要为每个元素新建一个Employee对象。而k您。工作正常,它确实抛出了一个索引超出范围异常。@PeterBlack很酷。我可以问一下吗。您为什么不使用列表
/generic集合作为解决方案呢?谢谢。工作正常,它确实抛出了一个索引超出范围异常。@PeterBlack很酷。我可以问一下吗。有什么原因吗ason为什么不在解决方案中使用列表
/generic集合?
for (int i = 0; i < counter; i++)
{
//actually create an instance of Employee in employee[i]
employee[i] = new Employee();
employee[i].Name = NameList[i];
employee[i].EmpNumber = EmpNumList[i];
employee[i].DateOfHire = DOHList[i];
employee[i].Salary = SalaryList[i];
employee[i].JobDescription = JobDescList[i];
employee[i].Department = DeptList[i];
}