我正在使用ConcurrentDictionary
,我需要使用TryRemove
删除元素。
TryRemove
的实现需要一个out参数来返回将被删除的对象。
Body dummy;
if (!bulletBodies.TryRemove(bullet, out dummy))
{
}
...
每当我删除字典中的条目时,我都不想在虚拟变量上使用额外的行:这就是为什么我试图绕过out返回参数不成功地键入下面的恐怖。我也用Google搜索了一下,没有成功。
bulletBodies.TryRemove(bullet, null);
bulletBodies.TryRemove(bullet, out null);
bulletBodies.TryRemove(bullet, void);
...
有没有方法或聪明的提示来管理未使用的输出参数,所以不需要在任何地方声明虚拟变量?
答案 0 :(得分:7)
您可以创建一个不返回已删除值的扩展方法TryRemove。
答案 1 :(得分:4)
您可以编写扩展方法,例如:
public static bool TryRemove<TKey, TValue>(this ConcurrentDictionary<TKey, TValue> dictionary, TKey key)
{
TValue dummy;
return dictionary.TryRemove(key, out dummy);
}