写一个linq 表达式或lambda表达式
V1=IEnumerable<A>
V2=IEnumerable<A>
A是有一属性为ID
V2是V1的子集
求V1中不在V2的数据,根据V1的A.ID 不等于V2的A.ID
在线等,谢谢
------解决方案--------------------listA.Where(x => listB.Select(z => z.ID == x.ID) == null);
------解决方案--------------------楼主的场景使用Except()更方便:
public static IEnumerable<TSource> Except<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second
)
// 或
public static IEnumerable<TSource> Except<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second,
IEqualityComparer<TSource> comparer
)
------解决方案--------------------
var query=V1.Where(x=>!V2.Select(y=>y.ID).Contains(x.ID));
------解决方案--------------------
++1
var query = from x in V1
where !V2.Select(y => y.ID).Contains(x.ID)
select x;