以下所有條件都泛型列表存在
我有listA的 和我還有其他4名列表(列表1,列表2,項目list3和list4)尋找項目沒有在其他
我如何返回ListA中存在但不存在於其他4個列表中的項目? 即,如果它存在於list1或list2或list3或list4中,我不想返回它。
以下所有條件都泛型列表存在
我有listA的 和我還有其他4名列表(列表1,列表2,項目list3和list4)尋找項目沒有在其他
我如何返回ListA中存在但不存在於其他4個列表中的項目? 即,如果它存在於list1或list2或list3或list4中,我不想返回它。
如上所述,這基本上是一組差異。扭曲的是,減法集合由幾個集合組成。您需要刪除它們的聯合,或者一次刪除一個。 如果你不關心性能,但只尋找實現簡單,使用Linq:
var result = ListA
.Except(list1)
.Except(list2)
.Except(list3)
.Except(list4);
如果我正在根據項目的屬性進行搜索,該怎麼辦?比方說,我的列表是類型車輛,我想基於vehicle.color – IsaacBok
@IsaacBok查看我的更新,它處理完全這種情況。 – HimBromBeere
像這樣使用LINQ Any
:
var result = ListA.Where(x => !(
list1.Any(y => x.MyProp == y.MyProp) ||
list2.Any(y => x.MyProp == y.MyProp) ||
list3.Any(y => x.MyProp == y.MyProp) ||
list4.Any(y => x.MyProp == y.MyProp)));
Alternativly你也可以覆蓋Equals
和GetHashCode
從object
來比較你的屬性。
你用過linq嗎?你的代碼在哪裏? – Eser
[如何:找到兩個列表之間的集合差異(LINQ)](https://msdn.microsoft.com/en-us/library/bb397894.aspx) – LibertyLocked
我會嘗試使用LINQ。 – Aj1