Way*_*oss 3 naming programming-languages terminology naming-conventions data-structures
标题主要是说.我想在C#中向基类Dictionary类添加一个简单的扩展方法.起初我将其命名为Pop(TKey键),有点像Stack方法,但它接受用于查找的键.
然后我要做Take(TKey键),但它与同名的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;
}
Run Code Online (Sandbox Code Playgroud)