List<T>
имеет метод RemoveAll
, который выполнит то, что вам нужно.В отличие от Where(...).ToList()
, он будет изменять существующий список вместо создания нового.
myObjArray.RemoveAll(item => idToBeRemove.Contains(item.id));
Обратите внимание, что по мере роста массива элементов для удаления вы захотите перейти к чему-то более производительному, например, HashSet<T>
, хотя при текущем значении 2 это ненасущная необходимость.
@ Richardissimo также предлагает хорошее предложение в комментариях к вашему вопросу о том, что когда основной список растет, Dictionary<K, V>
может быть полезным.Опять же, не насущная необходимость с небольшим списком, но что-то, о чем нужно помнить, когда оно растет и если производительность является проблемой.