В конце концов, ни в коем случае коллекция, которая имеет тип IEnumerable<T>
, ICollection<T>
или около того, не может удалить элемент на основании некоторых критериев.
Но вы можете создать метод расширения следующим образом:
public static void CollectionsExtensions
{
public static void RemoveInvalidItems(this ICollection<MyClass> some)
{
foreach(MyClass item in some.ToList())
{
if(!new Validator().ValidateObject(item)) // Your class having your validation method
{
some.Remove(item);
}
}
}
}
Итак, в конце дня вы можете преобразовать свой цикл для удаления недопустимых объектов в:
someCollectionOfMyClass.RemoveInvalidItems();
Сводка: вы можете удалить все недопустимые элементы в одной строке для любой коллекции, реализующей ICollection<MyClass>
, которая включает в себя:
IList<T>
List<T>
- и больше!