繁体   English   中英

在C#类中创建列表

[英]Creating a List in a C# Class

对其他人来说,这可能看起来很简单。 但这对我来说很难。 我的代码是这样的,用于学习C#。 我想从List<Employee>检索信息并使方法Display()工作。 希望有人能给我实用的建议。

class Program
{
    static void Main(string[] args)
    {
        List<Employee> employee = new List<Employee>();
        employee.Add(new Employee("Sudhakaran"));
        employee.Add(new Employee("Unnikrishnan"));
        employee.Add(new Employee("Meenakumari"));
        employee.Add(new Employee("Vijaya Lekshmi Menon"));
        employee.Add(new Employee("Seetha Devi Amma"));
        employee.Add(new Employee("Reghunathan Pillai"));
        employee.Add(new Employee("Parameswaran"));
        employee.Add(new Employee("Vani Parameswaran"));
        employee.Add(new Employee("Man Mohan"));
        employee.Add(new Employee("Anil Kumar"));
        employee.Add(new Employee("Athira"));

        //foreach (string emp in employee) //Not working.
        //{
        //}
    }
    public class Employee
    {
        public string name { get; set; }

        public Employee(string name)
        {
            this.name = name;
        }

        public List<string> ENames = new List<string>();

        public Employee()
        {
            Display();
        }

        public void Display()
        {
            foreach (string item in ENames)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
    }
}

employee是Employee列表而不是string 因此, emp必须是Employee类型。

foreach (Employee emp in employee)
{
    emp.Display();
}

你也可以使用foreach(var emp in employee) 这并不意味着var是任何类型的,它是强类型的。 参见var的文档

foreach (Employee emp in employee) // changed 
{
    Console.WriteLine(emp.name); // Write employe name to console
}

我无法看到你使用ENames是什么。 您可以使用以下内容遍历列表:

static void Main(string[] args)
{
    List<Employee> employee = new List<Employee>();
    employee.Add(new Employee("Sudhakaran"));
    employee.Add(new Employee("Unnikrishnan"));
    employee.Add(new Employee("Meenakumari"));
    employee.Add(new Employee("Vijaya Lekshmi Menon"));
    employee.Add(new Employee("Seetha Devi Amma"));
    employee.Add(new Employee("Reghunathan Pillai"));
    employee.Add(new Employee("Parameswaran"));
    employee.Add(new Employee("Vani Parameswaran"));
    employee.Add(new Employee("Man Mohan"));
    employee.Add(new Employee("Anil Kumar"));
    employee.Add(new Employee("Athira"));

    foreach (Employee emp in employee) //Not working.
    {
        emp.Display();
    }
    Console.ReadLine();
}

public class Employee
{
    public string name { get; set; }

    public Employee(string name)
    {
        this.name = name;
    }

    public void Display()
    {
        Console.WriteLine(name); 
    }
}

其中必不可少的部分是迭代员工列表而不是字符串:

 foreach (Employee emp in employee) //Not working.
 {
      emp.Display();
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM