Если Events
- List<T>
, вы можете использовать:
Events.ForEach( m => m.SomeId = 0 );
Если Events
- IEnumerable
, ForEach
не реализовано, но вы, конечно, можете создать свой собственный ForEachэто работает на IEnumerable
самостоятельно.Причина, по которой ForEach
не создан для IEnumerable
, заключается в том, что они не хотели иметь метод расширения для IEnumerable
с побочными эффектами (который изменил исходную коллекцию).
Реализация ForEach в IEnumerable достаточно проста:
public static IEnumerable<T> ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
foreach (T element in source)
action(element);
return source;
}
Это должно входить в класс static
, как и все другие методы расширения.