Use LINQ to get items in one List<>, that are not in another List<>
I would assume there's a simple LINQ query to do this, I'm just not exactly sure how.
Given this piece of code:
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; }
}
I would like to perform a LINQ query to give me all of the people in peopleList2
that are not in peopleList1
.
This example should give me two people (ID = 4 & ID = 5)