Buenas respuestas a continuación, pero no olvide una cosa IMPORTANTE : ¡brindan resultados diferentes!
var idList = new int[1, 2, 2, 2, 2]; // same user is selected 4 times
var userProfiles = _dataContext.UserProfile.Where(e => idList.Contains(e)).ToList();
Esto devolverá 2 filas de DB (y esto podría ser correcto, si solo desea una lista ordenada de usuarios distinta)
PERO en muchos casos, es posible que desee una lista de resultados sin clasificar . Siempre tienes que pensar en ello como en una consulta SQL. Consulte el ejemplo con el carrito de compras de eshop para ilustrar lo que está sucediendo:
var priceListIDs = new int[1, 2, 2, 2, 2]; // user has bought 4 times item ID 2
var shoppingCart = _dataContext.ShoppingCart
.Join(priceListIDs, sc => sc.PriceListID, pli => pli, (sc, pli) => sc)
.ToList();
Esto devolverá 5 resultados de DB. Usar 'contiene' sería incorrecto en este caso.