List<Person> distinctPeople = allPeople .GroupBy(p => p.PersonId) .Select(g => g.FirstOrDefault()) .ToList();
Persons.ToLookup(p => p.Id).Select(coll => coll.First());