【发布时间】:2011-04-26 01:55:03
【问题描述】:
我假设有一个简单的 LINQ 查询可以做到这一点,我只是不确定如何。
鉴于这段代码:
class Program
{
static void Main(string[] args)
{
List<Person> peopleList1 = new List<Person>();
peopleList1.Add(new Person() { ID = 1 });
peopleList1.Add(new Person() { ID = 2 });
peopleList1.Add(new Person() { ID = 3 });
List<Person> peopleList2 = new List<Person>();
peopleList2.Add(new Person() { ID = 1 });
peopleList2.Add(new Person() { ID = 2 });
peopleList2.Add(new Person() { ID = 3 });
peopleList2.Add(new Person() { ID = 4 });
peopleList2.Add(new Person() { ID = 5 });
}
}
class Person
{
public int ID { get; set; }
}
我想执行一个 LINQ 查询,将peopleList2 中所有不在peopleList1 中的人提供给我。
这个例子应该给我两个人(ID = 4 & ID = 5)
【问题讨论】:
-
也许将 ID 设置为只读是个好主意,因为对象的身份不应在其生存期内发生变化。当然,除非您的测试或 ORM 框架要求它是可变的。
-
根据this diagram?,我们可以称之为“左(或右)排除连接”