public static void AddOrEnsureOnComplement <T>(this MyIterableComplementSet <T> self, T item) { if (!self.Contains(item)) { self.AddToComplement(item); } else if (!self.IsInComplement(item)) { self.MoveToComplement(item); } }