Название говорит это в основном. Я хочу добавить простой метод расширения в базовый класс Dictionary в C #. Сначала я собирался назвать его 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;
}