2010-07-31 29 views
2

我正在使用通用列表,我將其添加到Employee對象中。
我知道如何添加和刪除它,但是如何從中讀取對象數據以及如何訪問列表中特定對象的方法和屬性。讀取和修改通用列表中的對象<T>

假設Employee類包含以下屬性,如何訪問它以修改對象數據?

public string FirstNameData 
{ 
    get { return v_firstName; } 
    set { v_firstName = value; } 
} 

回答

6

假設:

var myList = new List<Employee>(); 

你這裏有許多選項...

首先,你可以直接指標是:

var firstName = myList[0].FirstNameData 

您可以通過它列舉:

foreach(var employee in myList) 
    ProcessName(employee.FirstNameData); 

如果你是使用.Net 3.5或更高版本,您可以使用Linq exetnsions:

var firstName = myList.First().FirstNameData; 
var allFirstNames = myList.Select(employee => employee.FirstNameData); 

這一切都取決於你想做什麼...

3

您可以迭代列表並編輯它們,例如,

public void KnightEmployees(List<Employee> employeeList) 
{ 
    foreach(Employee employee in employeeList) 
    { 
     if (employee.Gender == Gender.Male) 
     { 
      employee.FirstNameData = "Sir " + employee.FirstNameData; 
     } 
     else 
     { 
      employee.FirstNameData = "Dame " + employee.FirstNameData; 
     } 
    } 
} 

或通過列表中的索引來訪問它們,從而爲您提供一個可以正常使用的對象。

employeeList[0].FirstNameData = "Bob"; 

這是你的意思嗎?

0

你在尋找索引嗎?

List<Employee> list = new List<Employee>(); 
list[0] = new Employee(); 
list[0].FirstNameData = "John"; 
0

很難告訴你要問什麼,但如果你知道哪個員工在你想要的清單,你的代碼可能會是這個樣子:

var emps = new List<Employee>(); 
emps.Add(...); 
... 
Console.WriteLine(emps[3].FirstName); //the 4th employee in the list 

這有點無關你的問題,但你可能想嘗試在C#中使用自動屬性(不要求一個私人的支持變量),像這樣讓你的特性更簡單一點:

public string FirstNameData { 
    get; set; 
}