internal Enumerator(OrderedHashSet <T> orderedHashSet) { this.orderedHashSet = orderedHashSet; index = 0; Current = default; node = orderedHashSet.order.First; }
protected void XOR_OrderedHashSet(OrderedHashSet <T> other) { foreach (T t in other) { if (!removeItem(t)) { addItem(t); } } }
private bool ContainsAllElementsNicely(OrderedHashSet <T> other) { foreach (var t in other.order) { if (!containsItem(t)) { return(false); } } return(true); }
private bool IsSubsetNicely(OrderedHashSet <T> other) { foreach (var key in lookup.Keys) { if (!other.lookup.ContainsKey(key)) { return(false); } } return(true); }
private void IntersectNicely(OrderedHashSet <T> other) { LinkedListNode <T> curr = order.First; while (curr != null) { LinkedListNode <T> next = curr.Next; if (other.Contains(curr.Value)) { removeItem(curr.Value); } curr = next; } }
public ReadOnlyOrderedHashSet(OrderedHashSet <T> source) { sourceData = source ?? throw new ArgumentNullException(nameof(source)); }
protected static bool EqualComparators(OrderedHashSet <T> first, OrderedHashSet <T> second) { return(first.lookup.Comparer.Equals(second.lookup.Comparer)); }