2011-09-08 15 views
24

Mam dwie listy i muszę je porównać i tylko zwrócić listę elementów nie w obu.Uzyskaj różnicę między dwiema listami przy użyciu LINQ

var listOfIds = new List<int> {1,2,4}; 

var persons = new ObservableCollection<Person> 
{ 
    new Person {Id = 1, Name = "Person 1"}, 
    new Person {Id = 2, Name = "Person 2"}, 
    new Person {Id = 3, Name = "Person 3"}, 
    new Person {Id = 4, Name = "Person 4"} 
}; 

W tym przykładzie wynikiem będzie new Person {Id = 3, Name = "Person 3"}. Preferowane byłoby rozwiązanie Linq.

Odpowiedz

28

Można również użyć lambda:

var query = persons.Where(item => !listOfIds.Contains(item.Id)); 
Powiązane problemy