gpt4 book ai didi

c# - 使用 LINQ 将一个列表复制到另一个列表和子列表

转载 作者:太空狗 更新时间:2023-10-30 01:08:10 25 4
gpt4 key购买 nike

我有一个员工列表,所有员工都有另一个嵌套的列表,称为 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> .............)));

感谢您的帮助和时间。

最佳答案

最好在 Employee 构造函数内部遍历输入参数 employeeValuesCollection 列表,创建一个 EmployeeValues 类型的局部变量,并将其添加到 Employee 类的实例列表变量中。如果我们使用 EmployeeValuesCollection = employeeValuesCollection;,我们实际上是在分配引用。因此,如果我们修改 employeeValuesCollection 的某些值,相同的更改将反射(reflect)到 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)));

关于c# - 使用 LINQ 将一个列表复制到另一个列表和子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com