Я пытаюсь вести список уникальных моделей из множества запросов. К сожалению, метод equals наших моделей не определен, поэтому я не мог легко использовать хеш-карту.
В качестве быстрого исправления я использовал следующий код:
public void AddUnique(
List<Model> source,
List<Model> result)
{
if (result != null)
{
if (result.Count > 0
&& source != null
&& source.Count > 0)
{
source.RemoveAll(
s => result.Contains(
r => r.ID == s.ID));
}
result.AddRange(source);
}
}
К сожалению, это не работает. Проходя через код, я обнаружил, что, хотя я проверил, чтобы был хотя бы один Model
с одинаковыми ID
в source
и result
, строка RemoveAll(Predicate<Model>)
делает Не изменять количество элементов в source
. Чего мне не хватает?