public void MergeWith(ApplicationInfoCollection collection)
 {
     lock (this.locker)
     {
         foreach (ApplicationInfo info in collection)
         {
             this.MergeWith(info);
         }
         this.OnChanged();
     }
 }
        public ApplicationInfoCollection GetDifference(ApplicationInfoCollection minuend)
        {
            ApplicationInfoCollection difference = new ApplicationInfoCollection();

            lock (this.locker)
            {
                IEnumerable <ApplicationInfo> buffer = this.data
                                                       .Where(item => IsInDifference(item, minuend))
                                                       .ToList();
                difference.AddRange(buffer);
            }
            return(difference);
        }