I have a string with semi-comma separated names:
string names = \"Jane;Harry\";
I also have a list of customer objects:
pub
Well, you should really split the string up to start with - otherwise you'll get a match for "Jane" even if the list is "Janet;Harry".
You could do:
string[] validNames = names.Split(';');
var query = customers.Where(c => validNames.Contains(c.FirstName));
Another option is to use a HashSet, which will perform a lot better when the list is very large:
HashSet validNames = new HashSet(names.Split(';'));
var query = customers.Where(c => validNames.Contains(c.FirstName));
I've used dot notation here instead of a query expression because it's simpler when you're just applying a clause or two. As a query expression though, it would be:
var query = from c in customers
where validNames.Contains(c.FirstName)
select c;