У меня есть список с некоторыми элементами, и я хочу удалить элементы из другого списка. Элемент должен быть удален, если его значение Contain
s (не равно) значению из другого списка.
Один из способов сделать это:
var MyList = new List<string> { ... }
var ToRemove = new List<string> { ... }
MyList.RemoveAll(_ => ToRemove.Any(_.Contains));
Это работает ...
, но у меня есть LOT списков (> 1 миллиона), и, поскольку ToRemove можно сортировать, имеет смысл использовать его для того, чтобыускорить процесс.
Легко сделать цикл, который делает это, но есть ли способ сделать это с отсортированными коллекциями?
Обновление:
На 20 000 итераций текста с нашим запрещенным списком я получаю следующее:
Запрещенный список в виде списка -> 00: 00: 07.1993364
Запрещенный список в виде HashSet -> 00:00: 07.9749997
Это согласованно после нескольких запусков, поэтому хэш-сет медленнее