设置属性(如果存在于其他列表中)
本文关键字:其他 列表 于其他 属性 如果 存在 设置 | 更新日期: 2023-09-27 18:35:42
>我有两个类型为Derp
的列表:
public class Derp
{
public bool Valid;
public int SomeValue;
public int MoreValues;
public int EvenMoreValues;
public int ThereAreManyValues;
}
List<Derp> a = new List<Derp>();
List<Derp> b = new List<Derp>();
/// Populate both
var c = a.Intersect(b).Select(x=> { x.Valid = true; return x; });
如果b
存在于a
中,我需要将Valid
设置为 true,并将所有值保留在 a
中。我可以理解上面的代码片段只保留相交的对象,但我需要保留a
.
我也尝试了其他有趣的事情(var c = a.Where(x => b.Contains(x)).Sel...
),但我认为我对 List 方法的理解不足以解决这个问题。
试试这个:
b.ForEach(x => {if (a.Contains(x)) {x.Valid = true;} });
以上作品。但是,请注意@SriramSakthivel的评论,如果可能的话,请重新考虑您的方法。
演示