2011-09-08 11 views
24

Ho due elenchi e ho bisogno di confrontarli e restituire solo un elenco di elementi non in entrambi.Ottieni la differenza tra due elenchi utilizzando 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"} 
}; 

In questo esempio new Person {Id = 3, Name = "Person 3"} sarebbe il risultato. Una soluzione Linq sarebbe preferibile.

risposta

28

È inoltre possibile utilizzare lambda:

var query = persons.Where(item => !listOfIds.Contains(item.Id)); 
Problemi correlati