我有一個Dictionary<int, int>
和想更新某些元件一次全部基於它們的電流值,例如將值爲10的所有元素更改爲具有值14或其他值。快速大規模更新字典
我想象這會很容易與一些LINQ /λ的東西,但它似乎並不像我想的那麼簡單。我目前的做法是這樣的:(幾百元的千),我跑在一個循環數千次這樣的代碼,因此它是令人難以置信的慢
List<KeyValuePair<int, int>> kvps = dictionary.Where(d => d.Value == oldValue).ToList();
foreach (KeyValuePair<int, int> kvp in kvps)
{
dictionary[KeyValuePair.Key] = newValue;
}
的問題是,dictionary
是相當大的。必須有一個更好的辦法...
@Paulo - 沒有,很遺憾。 – 2011-04-14 19:21:22
如果您生成新的字典,該怎麼辦? – JonH 2011-04-14 19:21:49
@JonH:那會更慢。 – recursive 2011-04-14 19:45:38