2016-03-06 37 views
1

我想顯示具有用戶定義類型數據的列表中的數據。從C#中的類列表中顯示數據#

這裏是我的類

namespace test 
{ 
class Employee 
{ 
    private string employeeName; 
    private string employeeId; 

    public override string ToString() 
    { 
     return "Employee Name: " + EmployeeName + "\nEmployee ID: " + EmployeeId; 
    } 

    public string EmployeeName 
    { 
     get { return employeeName; } 
     set { employeeName = value;} 
    } 

    public string EmployeeId 
    { 
     get { return employeeId; } 
     set { employeeId = value;} 
    } 
} 
} 

這裏是我的主要方法,

namespace test 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Employee employees = new Employee(); 
     List<Employee> listEmployee = new List<Employee>(); 

     employees.EmployeeName = "TEST 1"; 
     employees.EmployeeId = "01"; 

     listEmployee.Add(employees); 

     employees.EmployeeName = "TEST 2"; 
     employees.EmployeeId = "02"; 

     listEmployee.Add(employees); 

     Console.WriteLine("Number of Employee in the list: "+ listEmployee.Count); 
     Console.WriteLine(); 

     foreach (Employee em in listEmployee) 
     { 
      Console.WriteLine(em); 
      Console.WriteLine(); 
     } 

    } 
} 
} 

應該顯示輸出,

Number of Employee in the list: 2 

Employee Name: TEST 1 
Employee ID: 01 

Employee Name: TEST 2 
Employee ID: 02 

但它表明,

Number of Employee in the list: 2 

Employee Name: TEST 2 
Employee ID: 02 

Employee Name: TEST 2 
Employee ID: 02 

請告訴我爲什麼我沒有得到預期的輸出以及如何克服這一點。

預先感謝您。 :)

+1

陳極大地回答你的問題,但我還建議(爲了後面的代碼審查)將您的「員工」變量重命名爲「員工」和「listemployee」,以「listOfEmployees」或只是「員工」 – httpNick

+0

k你httpNIck :)。 – Tareq

回答

3

您可能對objectreference有誤解。

添加對象,即employees到列表:

enter image description here

在這裏,列表的第一個元素保存referenceobject。因此,當你在對象上進行修改,就變成

enter image description here

然後你再次插入對象到列表中,因此該列表的第二位置也持參考employees

enter image description here

將其添加到列表之前,您應該創建一個新的對象(與新參考) -

Employee employees2 = new Employee(); 
employees2.EmployeeName = "TEST 2"; 
employees2.EmployeeId = "02"; 

listEmployee.Add(employees2); 
+0

謝謝你陳。現在我清楚了。再次感謝您花時間繪製所有這些圖形,以便讓我清楚。你太棒了!!!! :-) – Tareq

1

修改後的主要

static void Main(string[] args) 
{ 
    Employee employeeFirst = new Employee(); 
    List<Employee> listEmployee = new List<Employee>(); 

    employeeFirst.EmployeeName = "TEST 1"; 
    employeeFirst.EmployeeId = "01"; 

    listEmployee.Add(employeeFirst); 

    Employee employeeNext = new Employee(); 


    employeeNext.EmployeeName = "TEST 2"; 
    employeeNext.EmployeeId = "02"; 

    listEmployee.Add(employeeNext); 

    Console.WriteLine("Number of Employee in the list: "+ listEmployee.Count); 
    Console.WriteLine(); 

    foreach (Employee em in listEmployee) 
    { 
     Console.WriteLine(em); 
     Console.WriteLine(); 
    } 

} 
+0

Darrell,非常感謝。 :) – Tareq

+0

Aprreciated,Enjoy :-) –