Это не так ясно, как другие способы, но должно работать нормально:
dictionary.Keys.ToList().ForEach(i => dictionary[i] = 0);
Моей другой альтернативой было бы сделать метод расширения ForEach похожим на этот:
public static class MyExtensions
{
public static void ForEach<T>(this IEnumerable<T> items, Action<T> action)
{
foreach (var item in items)
{
action(item);
}
}
}
Тогда используйте это так:
dictionary.ForEach(kvp => kvp.Value = 0);
В этом случае это не сработает, так как значение не может быть назначено.