EmployeeValuesCollection

EmployeeValuesCollection

我有一个员工列表,所有员工都有另一个嵌套列表,称为EmployeeValuesCollection。
所以我的课是这样的:

public Employee(int employeeID, string jobTitle, int companyID,
        List<EmployeeValues> employeeValuesCollection)
{
      EmployeeID = employeeID;
      JobTitle = jobTitle;
      CompanyID = companyID;
      EmployeeValuesCollection = employeeValuesCollection;
 }

现在我想用linq从另一个对象填充这个对象,到目前为止我已经:
List<DataFileRow> dataFiles = dfRow.Rows;
dataFiles
     .ForEach(l => employeeList
                      .Add(new Employee(l.EmpID, l.JobTitle, l.CompID)));

但我不知道如何在语句中添加employeevaluesCollection。有可能吗?
所以我在想:
dataFiles
     .ForEach(l => employeeList
                     .Add(new Employee(l.EmpID, l.JobTitle, l.CompID,
                          new List<EmployeeValuesCollection> .............)));

谢谢你的帮助和时间。

最佳答案

最好遍历employeevaluescollection内部的输入参数employeevaluescollection list,以创建employeevalues类型的局部变量,并将其添加到employee类的实例列表变量中。如果使用employeevaluescollection=employeevaluescollection;,则实际上是在分配引用。因此,如果修改EmployeeValuesCollection的某些值,相同的更改将反映到EmployeeValuesCollection。

public Employee(int employeeID, string jobTitle, int companyID, List<EmployeeValues> employeeValuesCollection)
    {
        EmployeeID = employeeID;
        JobTitle = jobTitle;
        CompanyID = companyID;

        foreach (var obj in employeeValuesCollection)
        {
            var empVal = new EmployeeValues() { Name = obj.Name};
            EmployeeValuesCollection.Add(empVal);
        }

您可以使用linq语句作为
dataFiles.ForEach(l => employeeList.Add(new Employee(l.EmpID, l.JobTitle, l.CompID, l.EmployeeValuesCollection)));

08-19 03:58