gpt4 book ai didi

c# - Linq 除了只考虑一个属性

转载 作者:可可西里 更新时间:2023-11-01 03:13:56 25 4
gpt4 key购买 nike

我有两个对象列表。

List<object1> obj1 = new List<object1>();

List<object2> obj2 = new List<object2>();

我想这样做:

obj2 = obj2.Except(obj1).ToList();

但是,通过阅读与我的类似的其他问题,我了解到除非我覆盖 Equals,否则这是行不通的。

我不想那样做,但是 obj2 和 obj1 都有一个字符串属性,足以判断它们是否相等。如果 obj2.StringProperty 等同于 obj1.StringProperty 那么可以认为两者相等。

有什么方法可以使用 Except,但只使用字符串属性进行比较?

最佳答案

Except 方法要求所涉及的两个集合类型具有相同的元素类型。在这种情况下,元素类型不同(object1object2)因此 Except 并不是真正的选择。此处使用的更好方法是 Where

obj2 = obj2
.Where(x => !obj1.Any(y => y.StringProperty == x.StringProperty))
.ToList();

关于c# - Linq 除了只考虑一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920561/

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