<分区>
我正在做一个性能关键程序(一些学术性的东西),我希望尽可能地进行优化(而不是像它证明的那样“这是”瓶颈)。
我有一个自定义字典结构(围绕 .NET Dictionary<,>
的包装器),我会不断地在一个阶段删除项目(按 Key
值)。我需要 Value
删除的项目。现在我必须做的:
T t;
if !TryGet(key, out t)
return false;
Remove(key);
这是两次查找。我会喜欢这个:
public bool Remove(S key, out T value)
{
// implementation
}
我知道框架中没有任何内容,但是在某处有实现吗?如果是这样,我会用那个改变我的支持字典。
编辑:嗯我都知道TryGetValue
和 Remove
是 O(1)。只知道是否有任何集合结构可以在一次查找中产生相同的效果。正如我所说,我正在尝试尽可能地优化。刚知道。