读取和修改通用List <t> </t>中的对象

时间:2010-07-31 15:23:26

标签: c# list

我正在使用一个通用List,我将Employee对象添加到。
我知道如何添加和删除它,但我如何从中“读取”对象数据以及如何访问列表中特定对象的方法和属性。

假设Employee类包含以下属性,如何访问它以修改对象数据?

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

4 个答案:

答案 0 :(得分: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);

这完全取决于你想做什么......

答案 1 :(得分: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";

这是你的意思吗?

答案 2 :(得分:0)

您在寻找索引吗?

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

答案 3 :(得分: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;
}