【发布时间】:2013-04-08 05:14:13
【问题描述】:
有没有办法从Dictionary(Key)中删除一个条目并在同一步骤中检索其Value?
例如,我在打电话
Dictionary.Remove(Key);
但我也希望它同时返回值。该函数只返回一个bool。
我知道我可以做类似的事情
Value = Dictionary[Key];
Dictionary.Remove(Key);
但这似乎会搜索字典两次(一次获取值,另一次从字典中删除它)。我怎样才能(如果可能)在不搜索字典两次的情况下同时进行这两项操作?
【问题讨论】:
-
stackoverflow.com/questions/15785091/… 的可能重复项此主题的答案已被接受
-
如果它也与性能有关,您可以在这里查看答案stackoverflow.com/questions/1869452/…,看看是否可以解决任何问题
-
@Kenneth:所以,我想这不能用 .NET 中的“内置”字典类型来完成?
-
@Mash: 假设你的
Key缓存或者平凡计算哈希码,双重查找的性能成本是微不足道的。大多数字典都有 O(1) 的查找和删除。 -
afaik,不,但既然这是一个如此明显和合法的要求,我想以前一定有人问过它。我想唯一可能的方法是实现你自己的字典。不重要,但我怀疑它会更快:)
标签: c# .net dictionary