This isn't exactly the IN operator, but it might help you get the expected result and maybe a more generic approach (as it allows two collections to be compared) : INTERSECT
here's a working example
var selected = users.Where(u => new[] { "Admin", "User", "Limited" }.Intersect(new[] {u.User_Rights}).Any() ); OR var selected = users.Where(u => new[] {u.User_Rights}.Intersect(new[] { "Admin", "User", "Limited" }).Any() ); I guess performance should be benchmarked (against the currently accepted answer) to fully validate this solution...
EDIT :
As Gert Arnold asked for an example (EF 6) : This piece of code gives me any user whose first and/or last name matches "John" or "Doe" :
// GET: webUsers public async Task<ActionResult> Index() { var searchedNames = new[] { "John", "Doe" }; return View( await db .webUsers .Where(u => new[] { u.firstName, u.lastName }.Intersect(searchedNames).Any()) .ToListAsync() ); //return View(await db.webUsers.ToListAsync()); }