Use LINQ para obter itens em uma lista <>, que não estão em outra lista <>

Eu diria que há uma consulta LINQ simples para fazer isso, mas não sei exatamente como. Consulte o snippet de código abaixo.

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; }
}

Eu gostaria de executar uma consulta LINQ para me fornecer todas as pessoas empeopleList2 que não estão empeopleList1 este exemplo deve me dar duas pessoas (ID = 4 e ID = 5)

questionAnswers(10)

yourAnswerToTheQuestion