标题主要说明了这一点。我想在 C# 中向基本 Dictionary 类添加一个简单的扩展方法。起初我打算将它命名为 Pop(TKey key),有点像 Stack 方法,但它接受一个用于查找的键。
然后我打算做Take(TKey key),但是它与同名的LINQ方法不谋而合……虽然C# 3.0可以让你这样做,但我不喜欢它。
那么,您认为,只是坚持使用 Pop 还是“查找并删除元素”有更好的术语?
(我觉得问这个问题有点尴尬,这似乎是一件微不足道的事情......但我喜欢使用标准,而且我对许多语言/环境没有丰富的经验。)
编辑:对不起,应该解释更多......在这种情况下,我不能使用术语删除,因为它已经由我使用新方法扩展的类定义。
编辑 2:好的,这就是我到目前为止所拥有的,受到群众智慧的启发:
public static TValue Extract<TKey, TValue>
(
this Dictionary<TKey, TValue> dict,
TKey key
)
{
TValue value = dict[key];
dict.Remove(key);
return value;
}
public static bool TryExtract<TKey, TValue>
(
this Dictionary<TKey, TValue> dict,
TKey key,
out TValue value
)
{
if( !dict.TryGetValue(key, out value) )
{
return false;
}
dict.Remove(key);
return true;
}