2012-08-31 37 views

回答

10
list1.RemoveAll(c => list2.Any(c2 => c2.Name == c.Name && c2.City == c.City)); 
2

与使用两个布尔值编写任何条件相同 - 使用&&||。举个例子:

from x in list1 
where list2.Any(y => y.Name == x.Name && y.City == x.City) 
select x 

。请注意,“上游”是一个简单的Func<MyType, bool>,所以只要你到底返回一个布尔值,你可以在那里做一些非常时髦的东西。

当然,你必须枚举IEnumerable.ToList()吧)删除,因为你不能改变一个列表枚举它,但你可能知道(或只使用List.RemoveAll与谓词以上)之前

相关问题