Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get the difference between two lists using LINQ

Tags:

c#

.net

list

linq

I have two lists and I need to compare them and only return a List of Items not in both.

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 this example new Person {Id = 3, Name = "Person 3"} would be the result. A Linq solution would be preferred.

like image 335
gulbaek Avatar asked Sep 08 '11 11:09

gulbaek


People also ask

What is meant by Linq in C#?

Language-Integrated Query (LINQ) is the name for a set of technologies based on the integration of query capabilities directly into the C# language. Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support.


1 Answers

not in will work for you

var listOfIds = new List<int> {1,2,4};  var query = from item in persons              where !listOfIds .Contains( item.id )             select item; 

You can check for more detail : SQL to LINQ ( Case 7 - Filter data by using IN and NOT IN clause)

like image 156
Pranay Rana Avatar answered Sep 20 '22 18:09

Pranay Rana