Хороші відповіді abowe, але не варто забувати одне ВАЖНАЯ річ - вони дають різні результати!
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();
Це поверне 2 ряди з БД (і це може бути правильним, якщо ви просто хочете окремо відсортований список користувачів)
АЛЕ у багатьох випадках, ви можете захотіти несортованого списку результатів. Ви завжди повинні думати про це, як про запит SQL. Дивіться приклад із кошиком для покупок, щоб проілюструвати, що відбувається:
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();
Це поверне 5 результатів з БД. Використання "містить" було б неправильним у цьому випадку.