Выберите элементы из списка<объект>, составив список<guid> в C#
У меня есть ListAllUsers . Пользователь, имеющий идентификатор propeorty (как Guid), имя (как String), адрес (как String). У меня есть другой список идентификаторов пользователей, которые выбраны из пользовательского интерфейса. Я хочу получить список selectedUsers, где идентификаторы из AllUsers. Я пытаюсь получить его по LINQ. Могу ли я сделать это одним утверждением, без нескольких итераций? как?
2 ответа
Решение
Если я правильно понимаю ваш вопрос, вы можете сделать что-то вроде:
var selectedUsers = allUsers.Where(user => selectedUserIds.Contains(user.Id));
Другой возможный подход:
var selectedUsers = selectedUserIds.Select(id => allUsers.First(user => user.id == id))
Это вызовет исключение, если один из selectedUserIds не сопоставляется с пользователем, который может быть тем, что вы хотите. Метод Фредерика молча проглотит.