示例#1
0
 public sealed override bool Remove(TK key)
 {
     return(this.ModifyIf(
                () => this.RemoveImpl(key),
                () =>
     {
         TV value;
         if (!this.TryGetValue(key, out value))
         {
             return DictionaryEventArgs.NewEventRemoveRange(new TK[0], new TV[0]);
         }
         return DictionaryEventArgs.NewEventRemoveRange(new[] { key }, new[] { value });
     }));
 }
示例#2
0
 public sealed override void RemoveAllKeys(IEnumerable <TK> enumer)
 {
     this.Modify(
         () => this.RemoveAllImpl(enumer),
         () =>
     {
         List <TK> keys   = new List <TK>();
         List <TV> values = new List <TV>();
         foreach (TK k in enumer)
         {
             TV v;
             if (this.TryGetValue(k, out v))
             {
                 keys.Add(k);
                 values.Add(v);
             }
         }
         return(DictionaryEventArgs.NewEventRemoveRange(keys, values));
     });
 }