У меня есть небольшое требование при объединении списков. Я попытаюсь проиллюстрировать пример. Допустим, я работаю с 2 списками объектов GamePlayer. У GamePlayer есть свойство LastGamePlayed. Уникальный GamePlayer идентифицируется через свойство GamePlayer.ID. Теперь я хотел бы объединить listA и listB в один список, и если данный игрок присутствует в обоих списках, я хотел бы сохранить значение из списка A.Объединение списков, но получение уникальных членов
Я не могу просто комбинировать списки и использовать компаратор, потому что моя уникальность основана на ID, и если мой идентификатор сравнения проверяет идентификатор, я не буду контролировать, выбирает ли он элемент listA или listB. Мне нужно что-то вроде:
for each player in listB
{
if not listA.Contains(player)
{
listFinal.Add(player)
}
}
Однако, есть более оптимальный способ сделать это вместо того, чтобы искать lišta для каждого элемента в LISTB?
**** EDIT ****: В противном случае, если бы я хотел выбрать, какой GamePlayer я буду использовать на основе значения LastGamePlayed (вместо того, чтобы знать, что ListA имеет преимущество перед ListB)? Итак, я хочу уникальный список объектов GamePlayer, но для каждого игрока я хочу, чтобы объект GamePlayer с последним LastGamePlayed? В основном мне нужен способ определить, какой объект хранить, когда есть дубликаты GamePlayers.
В этом случае listFinal будет содержать все listA и все элементы из спискаB, которых нет в спискеA? – Thomas