gpt4 book ai didi

c# - .Net 列表 ForEach Item

转载 作者:行者123 更新时间:2023-11-30 19:28:52 24 4
gpt4 key购买 nike

我有 2 个对象:

public class ClassA
{
public int Id
public string name;

public ClassB myObjectB;

}
public class ClassB
{
public int Id
public string name
}

有 2 个列表List1 中的某些项目按 Id 与 List2 上的项目匹配...我想为每个项目设置 objectB...

foreach(ClassA item in List1)
{
ClassB obj = (from b in List2 where b.Id == item.Id select b).SingleOrDefault()
if(obj != null)
{
item.myObjectB = obj;
////////break; <- ignore this
}
}

这个解决方案对我有用,但我只是想知道是否有更好的方法来代替 Foreach

感谢大家的帮助!!!

最佳答案

我认为 foreach 在这种情况下实际上是合适的方法,因为您正在改变您的列表。但是,您可能会稍微简化您的代码:

foreach(ClassA item in List1)
{
item.myObjectB = List2.FirstOrDefault(b => b.Id == item.Id);
}

这将每次都设置该项目,但如果没有匹配项,它将被设置为 null。如果您在 myObjectB 中已有项目并且将它们设置为 null 是不合适的,您可以使用:

foreach(ClassA item in List1)
{
item.myObjectB = List2.FirstOrDefault(b => b.Id == item.Id) ?? item.myObjectB;
}

关于c# - .Net 列表 ForEach Item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13754920/

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