gpt4 book ai didi

c# - 在 C# 中的列表之间复制值的正确方法?

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:45 24 4
gpt4 key购买 nike

假设我们有一个员工列表(List<Employee> EmployeeList),其中每个员工都有姓名(字符串)。如果我们要有一个仅包含员工姓名的新列表,是否正在执行以下正确/最佳实践?

List<string> NameList = new List<string>();
foreach( Employee e in EmployeeList)
{
NameList.Add(e.Name);
}

如果我们处理复杂类型而不是字符串会怎么样?将员工列表从一个列表复制到另一个列表,例如:

List<Employee> newEmployeeList = new List<Employee>();
foreach( Employee e in EmployeeList)
{
if (Employee.YearsWorked<2)
newEmployeeList.Add(e);
}

newEmployeeList 不会将 Employee 实例单独复制到 EmployeeList。那是对的吗?如果是,那么我们如何有效地创建单独的副本(在代码中)?

最佳答案

只需使用 Linq 来投影新集合(如果您还没有这样做,请包括 using System.Linq;):

var newEmployeeList = EmployeeList
.Where(e => e.YearsWorked < 2)
.ToList()

就像你的手册一样new List<> / Add , 这只是创建了一个新列表,但是相同的 Employee与原文相同的引用文献 EmployeeList .如果你想要包含实体的深拷贝,你通常会使用 technique like序列化/反序列化循环,或者使用反射,如果你在 Employee 下有一个深图,则递归地使用.

关于c# - 在 C# 中的列表之间复制值的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539014/

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