タイトルはほとんどそれを言います。C# のベース Dictionary クラスに単純な拡張メソッドを追加したいと考えています。最初は、Stack メソッドのような名前を Pop(TKey key) と名付けようとしていましたが、ルックアップに使用するキーを受け入れます。
次に、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;
}