在C#中如何获取数组内对象的属性?

Tha*_*kis 1 c# arrays object

我尝试使用以下方法引用已插入到数组中的对象的属性时遇到问题.

    public static void AddEmployees()
    {
        string empID;
        decimal empWage;
        int count = 0;
        do
        {
            Console.Write("Please enter the employee ID number: ");
            empID = Convert.ToString(Console.ReadLine());

            Console.Write("Please enter the employee wage: ");
            empWage = Convert.ToDecimal(Console.ReadLine());

            var employeeObj = CreateEmployee(empID, empWage);
            employeeArray[count] = employeeObj;
            ++count;

        } while (count < 6);

    }
Run Code Online (Sandbox Code Playgroud)

我想以某种可读的格式打印出这个数组中的信息,但我不知道如何引用empWage或empID.理想情况下,我想使用某种foreach循环,如下所示:

    public static void DisplayEmployees()
    {
        foreach (var obj in employeeArray)
        {
            Console.WriteLine("Employee ID: {0}", empID);
            Console.WriteLine("Employee Wage: {0}", empWage);
            Console.WriteLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 5

你几乎拥有它:

foreach (var obj in employeeArray)
{
    Console.WriteLine("Employee ID: {0}", obj.empID);
    Console.WriteLine("Employee Wage: {0}", obj.empWage);
    Console.WriteLine();
}
Run Code Online (Sandbox Code Playgroud)

更新:

如果employeeArray是类型object[],则不能直接引用类中定义的属性Employee.

如何解决:

而不是object[]使用List<Employee>,例如:

public static List<Employee> employees  = new List<Employee>();
Run Code Online (Sandbox Code Playgroud)

您还需要更改向列表中添加项目的方式:

var employeeObj = CreateEmployee(empID, empWage);
employees.Add(employeeObj);
Run Code Online (Sandbox Code Playgroud)

最后,返回类型CreateEmployee应该是Employee(不是object).