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.
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.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With