Пример #1
0
        public override void Add(TIn item)
        {
            var oldStat  = GetGroup(item);
            var oldValue = Tuple.Create(oldStat.Value, grouper(item));

            if (sortedGroups.Contains(oldValue))
            {
                sortedGroups.Remove(oldValue);
            }

            base.Add(item);
        }
Пример #2
0
 private void TryUpdate(T item)
 {
     lock (reportLock)
     {
         var newFeature = featureSelector(item);
         if (features.ContainsKey(item))
         {
             var oldFeature = features[item];
             if (oldFeature.Equals(newFeature))
             {
                 return;
             }
             itemSet.Remove(Tuple.Create(oldFeature, item));
         }
         features[item] = newFeature;
         itemSet.Add(Tuple.Create(newFeature, item));
     }
 }