[英]how to compare two arrays of objects
我有一個名為Person的對象。 它有First,Last,Age等屬性。 。 。
我有兩個Person對象數組。
我想要一些函數來獲取兩個數組
Person[] firstlist = . .
Person[] secondList = . .
讓它吐出兩個新陣列
Person[] peopleinFirstListandNotSecond
Person[] peopleinSecondListandNotFirst
由於這些不是字符串數組,我希望對名字和姓氏進行比較以確定它是否是同一個人
這是一個linq函數( IEnumerable<T>.Except(...)
), IEnumerable<T>.Except(...)
你的需要。
您可以編寫一個比較器(實現IEqualityComparer接口 ),然后將其與Except擴展方法一起使用,正如其他海報所述。
或者,您可以在lambda中進行比較,例如
var peopleinFirstListAndNotSecond =
firstList.
Where( p =>
!secondList.Any( s =>
s.Age == p.Age &&
s.FirstName == p.FirstName &&
s.SecondName == p.SecondName
)
);
實現IComparable(參見SO:IComparable和Equals ),然后遍歷每個列表,構建所需的兩個輸出列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.