public virtual void AddAll(ITwoDimensionalCounterInterface <K1, K2> c)
 {
     foreach (K1 key in c.FirstKeySet())
     {
         ICounter <K2>       inner   = c.GetCounter(key);
         ClassicCounter <K2> myInner = GetCounter(key);
         Counters.AddInPlace(myInner, inner);
         total += inner.TotalCount();
     }
 }
 public virtual void SubtractAll(ITwoDimensionalCounterInterface <K1, K2> c, bool removeKeys)
 {
     foreach (K1 key in c.FirstKeySet())
     {
         ICounter <K2>       inner   = c.GetCounter(key);
         ClassicCounter <K2> myInner = GetCounter(key);
         Counters.SubtractInPlace(myInner, inner);
         if (removeKeys)
         {
             Counters.RetainNonZeros(myInner);
         }
         total -= inner.TotalCount();
     }
 }