我有一个Dictionary<int, int>并且想要根据它们的当前值一次更新某些元素,例如将值为10的所有元素更改为具有值14或其他值.
我想象一下LINQ/lambda的东西很容易,但它看起来并不像我想象的那么简单.我目前的做法是:
List<KeyValuePair<int, int>> kvps = dictionary.Where(d => d.Value == oldValue).ToList();
foreach (KeyValuePair<int, int> kvp in kvps)
{
dictionary[KeyValuePair.Key] = newValue;
}
Run Code Online (Sandbox Code Playgroud)
问题是它dictionary非常大(数十万个元素)并且我在循环中运行这个代码数千次,所以它非常慢.肯定有更好的办法...