У меня есть 2 коллекции IEnumerable.Удалить элементы из IEnumerable <T>
IEnumerable<MyClass> objectsToExcept
и
IEnumerable<MyClass> allObjects.
objectsToExcept
может содержать объекты из allObjects
.
Мне нужно удалить с allObjects
объектов в objectsToExcept
. Например:
foreach (var myClass in objectsToExcept)
{
allObjects.Remove(myClass);
}
Или
allObject.Except(objectsToExcept)
Но это не работает. Счет после того, как методы имеют выполнение, указывает, что никакие предметы не были удалены.
'Удалить' существует как метод расширения в пространстве Linq для XML, но не выполняет то, что пытается сделать OP. Как ни странно, вы видите его на странице документации для членов 'IEnumerable', но у него есть ограничение 'where T: XNode'. Технически 'Except' не находится на' IEnumerable ', но это абсолютно слишком разборчиво. –
@Mike Two, действительно, я никогда не замечал этого ... это похоже на ошибку в документации –