簡體   English   中英

如何比較兩個對象數組

[英]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(...)你的需要。

http://msdn.microsoft.com/en-us/library/bb336390.aspx

您可以編寫一個比較器(實現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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM