// Token: 0x06002501 RID: 9473 RVA: 0x0008816C File Offset: 0x0008636C protected void DoUnionWith(global::ODBList <T> list) { if (!list.any || list == this) { return; } global::ODBSibling <T> n = list.first; do { T self = n.item.self; n = n.item.n; if (this.hashSet.Add(self)) { global::ODBNode <T> .New(this, self); } }while (n.has); }
// Token: 0x06002504 RID: 9476 RVA: 0x00088340 File Offset: 0x00086540 protected void DoIntersectWith(global::ODBList <T> list) { if (this.any) { if (list.any) { if (list != this) { this.hashSet.IntersectWith(list.hashSet); int num = this.hashSet.Count; if (num == 0) { while (this.any) { this.first.item.Dispose(); } } else { global::ODBSibling <T> n = this.first; do { global::ODBNode <T> item = n.item; n = n.item.n; if (!this.hashSet.Contains(item.self)) { item.Dispose(); if (this.count == num) { break; } } }while (n.has); } } } else { this.DoClear(); } } }
// Token: 0x06002503 RID: 9475 RVA: 0x00088254 File Offset: 0x00086454 protected void DoSymmetricExceptWith(global::ODBList <T> list) { if (this.any) { if (list.any) { if (list == this) { this.DoClear(); } else { global::ODBSibling <T> n = list.first; do { T self = n.item.self; n = n.item.n; if (this.hashSet.Remove(self)) { this.KnownFind(self).Dispose(); } else { this.hashSet.Add(self); global::ODBNode <T> .New(this, self); } }while (n.has); } } } else if (list.any) { global::ODBSibling <T> n2 = list.first; do { T self2 = n2.item.self; n2 = n2.item.n; this.hashSet.Add(self2); global::ODBNode <T> .New(this, self2); }while (n2.has); } }
// Token: 0x06002505 RID: 9477 RVA: 0x00088414 File Offset: 0x00086614 protected global::ODBNode <T> KnownFind(T item) { global::ODBSibling <T> n = this.first; for (;;) { T self = n.item.self; if (self == item) { break; } n = n.item.n; if (!n.has) { goto Block_2; } } return(n.item); Block_2: throw new ArgumentException("item was not found", "item"); }
// Token: 0x06002502 RID: 9474 RVA: 0x000881D4 File Offset: 0x000863D4 protected void DoExceptWith(global::ODBList <T> list) { if (!this.any || !list.any) { return; } if (list == this) { this.DoClear(); } else { global::ODBSibling <T> n = list.first; do { T self = n.item.self; n = n.item.n; if (this.hashSet.Remove(self)) { this.KnownFind(self).Dispose(); } }while (n.has); } }
// Token: 0x060024C3 RID: 9411 RVA: 0x000877C0 File Offset: 0x000859C0 public ODBForwardEnumerable(global::ODBSibling <T> sibling) { this.sibling = sibling; }
// Token: 0x060024BC RID: 9404 RVA: 0x00087730 File Offset: 0x00085930 public ODBReverseEnumerable(global::ODBSibling <T> sibling) { this.sibling = sibling; }
// Token: 0x060024A6 RID: 9382 RVA: 0x00087530 File Offset: 0x00085730 public ODBForwardEnumerator(global::ODBSibling <T> sibling) { this.sib = sibling; this.Current = (T)((object)null); }