Эта абстракция с "функциональным подходом" просачивается много времени. Ничто на уровне языка не предотвращает побочные эффекты. Пока вы можете заставить его вызывать лямбда / делегат для каждого элемента в контейнере - вы получите поведение «ForEach».
Вот, например, один из способов объединения srcDictionary в destDictionary (если ключ уже существует - перезаписывает)
это хак, и его не следует использовать ни в одном производственном коде.
var b = srcDictionary.Select(
x=>
{
destDictionary[x.Key] = x.Value;
return true;
}
).Count();