C# 如何创建要列出的对象数组

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

我有两门课。1被称为雇员。另一个是我的“主要”。我试图获取一个列表,并将列表中的每个值分配给Employee对象数组

//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];
        }