Выберите элементы из списка<объект>, составив список<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 не сопоставляется с пользователем, который может быть тем, что вы хотите. Метод Фредерика молча проглотит.

Другие вопросы по тегам