LINQ предназначен для запроса данных, я предполагаю, что этого избегали ForEach()
, потому что есть вероятность, что он может изменить данные, что повлияет на способ запроса данных (т. Е. Если вы изменили поле, которое влияло на хеш-код или равенство).
Вы можете быть смущены тем фактом, что List<T>
имеет ForEach()
?
Конечно, достаточно легко написать один, но его следует использовать с осторожностью из-за вышеупомянутых проблем ...
public static class EnumerableExtensions
{
public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
if (source == null) throw new ArgumentNullException("source");
if (action == null) throw new ArgumentNullException("action");
foreach(var item in source)
{
action(item);
}
}
}