2011-09-08 13 views
24

Tengo dos listas y necesito compararlas y solo devolver una Lista de elementos que no estén en ambos.Obtenga la diferencia entre dos listas usando 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"} 
}; 

En este ejemplo new Person {Id = 3, Name = "Person 3"} sería el resultado. Sería preferible una solución Linq.

Respuesta

28

También puede utilizar lambda:

var query = persons.Where(item => !listOfIds.Contains(item.Id)); 
Cuestiones relacionadas