// Statics // /// <summary> /// Takes all the records from T2 and merges into T1; if the record exists in T1, then: /// -- T1's record is updated /// -- T2's record is deleted /// Otherwise, if the record does not exist in T1, nothing happens /// </summary> /// <param name="T1"></param> /// <param name="T2"></param> public static void Union(KeyValueSet T1, KeyValueSet T2) { List<Record> Deletes = new List<Record>(); // Merge and tag deletes // foreach (KeyValuePair<Record, CompoundRecord> t in T2._cache) { if (T1._cache.ContainsKey(t.Key)) { T1.Merge(t.Key, t.Value); Deletes.Add(t.Key); } } // Clear deletes // foreach (Record r in Deletes) T2._cache.Remove(r); }