Tôi đã cố gắng viết một phương thức mở rộng để bắt chước List.RemoveAll (Predicate).Phương thức mở rộng Từ điển <TKey,TValue> .Xóa tất cả? Có thể không?
Cho đến nay tôi đã nhận điều này:
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;
}
Bất kỳ con trỏ? Đây có phải là một triển khai hoàn toàn ngây thơ không?
Bạn sẽ không muốn xóa các cặp từ điển bằng cách chỉ đối sánh vị từ của bạn bằng Khóa, thay vì KeyValuePair? – base2