#c# #linq
#c# #linq
Вопрос:
У меня есть два списка:
Один список из базы данных, содержащий объекты -> SystemList
public class MyObject
{
public short Id { get; set; }
public string Name { get; set; }
}
Один список от пользователя, который содержит идентификаторы из объектов -> Список пользователей
List<short> UserList;
Я хочу написать в linq запрос, который проверяет, все ли элементы из списка пользователей находятся в системном списке
Я решил это временно, используя это:
bool hasAllItems = true;
foreach (var g in UserList) {
hasAllItems = hasAllItems amp;amp; SystemList.Any(a => a.Id == g);
}
Я знаю, что это можно улучшить.
Комментарии:
1. Я полностью поддерживаю вас в ваших начинаниях.
2. Вам действительно нужно предоставить более подробную информацию, если вы хотите получить достойный ответ
3. Это было бы что-то вроде
UserList.Except(SystemList).Any()
, но многое зависит от того, какова именно структура двух списков, а также от того, что вы пробовали до сих пор4. Невозможно дать вам конкретный ответ без каких-либо подробностей в списке. Даже если вы предоставили эти данные, звучит так, будто вы просите нас сделать это за вас. Что вы пробовали?
5. Я обновляю вопрос. Спасибо за вашу помощь
Ответ №1:
Вы можете использовать только Linq:
bool hasAllItems = UserList.All(s => SystemList.Any(mo => mo.Id == s));