leo*_*ora 3 c# arrays comparison .net-3.5
我有一个名为Person的对象.它有First,Last,Age等属性...
我有两个Person对象数组.
我想要一些函数来获取两个数组
Person[] firstlist = . .
Person[] secondList = . .
Run Code Online (Sandbox Code Playgroud)
让它吐出两个新阵列
Person[] peopleinFirstListandNotSecond
Person[] peopleinSecondListandNotFirst
Run Code Online (Sandbox Code Playgroud)
由于这些不是字符串数组,我希望对名字和姓氏进行比较以确定它是否是同一个人
这是一个linq函数(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
)
);
Run Code Online (Sandbox Code Playgroud)