나는 List.RemoveAll (Predicate)을 모방하는 확장 메서드를 작성하려고 노력 해왔다.확장 메서드 사전 <TKey,TValue> .RemoveAll? 가능한가?
public static void RemoveAll<TKey,TValue>(this Dictionary<TKey,TValue> dict,
Predicate<KeyValuePair<TKey,TValue>> condition)
{
Dictionary<TKey,TValue> temp = new Dictionary<TKey,TValue>();
foreach (var item in dict)
{
if (!condition.Invoke(item))
temp.Add(item.Key, item.Value);
}
dict = temp;
}
모든 포인터 :
지금까지 나는이있어? 이것은 완전히 순진한 구현입니까?
을 그리고 호출 코드는 말할 것이다 : 당신의 서명이 변경 것 KeyValuePair 대신 Key 만 일치하는 조건어를 사용하여 사전에서 쌍을 삭제 하시겠습니까? – base2