private void AddedToB(T item) { if (_a.Contains(item)) { _count++; _added.Use(a => a(item)); } }
/// <summary> /// Create a new intersection set. /// </summary> /// <param name="a"></param> /// <param name="b"></param> public IntersectionSet(IReadonlyObservableSet <T> a, IReadonlyObservableSet <T> b) { _a = a; _b = b; _added = new ObserverSet <Action <T> >(); _removed = new ObserverSet <Action <T> >(); _count = 0; foreach (var item in a) { if (b.Contains(item)) { _count++; } } _aAddedObserver = a.AddedWeak(AddedToA); _aRemovedObserver = a.RemovedWeak(RemovedFromA); _bAddedObserver = b.AddedWeak(AddedToB); _bRemovedObserver = b.RemovedWeak(RemovedFromB); }
public bool Contains(T item) { return(_target != null && _target.Contains(item)); }
#pragma warning restore 0414 public override bool Add(T item) { return(_super.Contains(item) && base.Add(item)); }