I'm using the Mongo LINQ Driver for C#, works great.
Sorting a lot of properties but heres a problem I can't solve, its probably simple.
var identifierList = new []{"10", "20", "30"};
var newList = list.Where(x => identifierList.Contains(x.Identifier));
This is NOT supported ...
So I could do something like:
var newList = list.Where(x => x.Identifier == "10" || x.Identifier == "20" || x.Identifier == "30");
But since the list is variable ... how do I construct the above? Or are there even better alternatives?
The list
is of type IQueryable<MyCustomClass>
For information ... this is used as a filter of alot of properties. In SQL I could have a parent -> child relationship. But as I can't as the parent for the main ID I need to take all the ID's out and then construct it like this.
Hopes this makes sense. If needed I will explain more.
To answer my own question ... The Mongo Sharp LINQ driver has an extension method called "In" which does exactly what I need.
They have however implemented it in 1.5 so we can use the old way like: https://jira.mongodb.org/browse/CSHARP-462
var list = new []{"10", "10"};
search.Where(x => list.Contains(x.Id));
But the version 1.5 package is not on nuget yet.
However, this should work with the "In" extension that comes as a special surprise with the mongo-csharp-driver.
search.Where(x => x.In(list));
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