Объедините два отдельных списка пользователей, используя другой список всех пользователей - PullRequest
2 голосов
/ 22 апреля 2020

Может быть, немного отчаялся, или подумал над этим, но я стараюсь упростить то, что кто-то другой уже создал.

Есть список пользователей и список администраторов. Третий список представляет собой список всех учетных записей пользователей, но содержит только идентификаторы учетных записей - два других списка содержат информацию об учетных записях (включая идентификаторы).

Я пытаюсь создать единый список всех учетных записей пользователей. со всей информацией об учетной записи, но ни к чему не привели.

Я пробовал что-то вроде:

everyone_list.join(
  (users_list, 
    a => a.id, 
    b => b.id, 
    (a, b) => new { 
      id 
    })).join(
      admins_list, 
      a => a.id, 
      b => b.id,
      (a, b) => new {
        id
      }).tolist

Я думаю, что проблема в том, что при первом присоединении не будет никакой информации ( идентификаторы) для второго соединения.

1 Ответ

1 голос
/ 22 апреля 2020

Предполагая, что администраторы и пользователи относятся к одному и тому же типу (я назову это PersonInfo), а список идентификаторов учетных записей представляет собой простой список целых чисел, вы можете сделать это с помощью Linq.

accountIdList - это список из всех идентификаторов учетных записей adminList - это ваш список администраторов, а userList - ваш список пользователей.

var accountInfoList = userList.Concat(adminList)
    .Where(user => accountIdList.Contains(user.Id))
    .ToList();

Если они не одного типа, я бы предложил создать интерфейс, содержащий поля, общие для Два и настройте выше, чтобы привести пользователей и администраторов в качестве типа интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...