private OuterEntry RecordOuter(TOuter outerItem) { _outerReferenceTracker.Add(outerItem); OuterEntry outerEntry; if (!_outerEntries.TryGetValue(outerItem, out outerEntry)) { TKey outerKey = _outerKeySelector(outerItem); outerEntry = new OuterEntry(outerItem, outerKey); outerEntry.Result = _resultSelector(outerItem, outerEntry.MatchingInnersReadOnly); _outerEntries[outerItem] = outerEntry; var outersMatchingKey = _keyToOuterLookup.GetOrCreate(outerKey, () => new List <OuterEntry>(1)); outersMatchingKey.Add(outerEntry); AddAllInnersMatchingKey(outerEntry); } return(outerEntry); }
protected override void InsertItem(int index, T item) { _tracker.Add(item); base.InsertItem(index, item); }
public void Add_ItemNotCurrentlyBeingTracked_ReturnsTrue() { Person person = new Person(); Assert.IsTrue(_target.Add(person)); }