Dictionary の Values をすべて更新する

って、みなさんどうやってます? 手法はたくさんあるんだと思いますが。
たとえば、Dictionary の Values をすべて2倍にするとか。

string[] keys = new string[dict.Count];

dict.Keys.CopyTo(keys);
foreach (string key in keys)
    dict[key] *= 2;

とかかな?

public void ForEach(Action<KeyValuePair<TKey, TValue>> action, bool acceptChanges);

みたいなメソッド欲しくないですか(笑
実行時効率は置いといて Generic Method を無理やり使うなら、

new List<string>(dict.Keys).ForEach(delegate(string key))
{
  dict[key] *= 2;
}

というところでしょうか。JIT が、これを上の foreach と同じレベルまで最適化できたらすばらしいんだけど。