2015-11-04 56 views
3

对其他人来说,这看起来很简单。但是这对我来说很难。我的代码就像这是为了学习C#的目的。我想从List<Employee>中检索信息并获得方法Display()的工作。希望任何人都会给我实际的建议。在C#类中创建列表

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(); 
     } 
    } 
} 
+1

为什么你'到Console.ReadLine();'? –

+1

另外,Display应该做什么? –

+0

什么是'ENames'应该是?为什么构造函数调用'Display'? – crashmstr

回答

1

我看不到你正在使用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(); 
} 
+0

非常感谢。 – Unnikrishnan

+0

没问题 - 很高兴你喜欢答案! :) –

+0

非常多先生。我爱它。 – Unnikrishnan

5

员工的Employee而不是string列表。因此emp必须是Employee

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

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

+0

谢谢xxMUROxx。 – Unnikrishnan

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

感谢Abhilash P A. – Unnikrishnan