コード例 #1
0
 // Token: 0x060024E1 RID: 9441 RVA: 0x00087A70 File Offset: 0x00085C70
 private void Setup(global::ODBList <T> list, T self)
 {
     this.self    = self;
     this.list    = list;
     this.hasList = true;
     this.n       = default(global::ODBSibling <T>);
     if (list.any)
     {
         this.p             = list.last;
         this.p.item.n.item = this;
         this.p.item.n.has  = true;
         list.last.item     = this;
         list.count++;
     }
     else
     {
         list.count = 1;
         list.any   = true;
         global::ODBSibling <T> odbsibling;
         odbsibling.has  = true;
         odbsibling.item = this;
         list.first      = odbsibling;
         list.last       = odbsibling;
     }
 }
コード例 #2
0
    // Token: 0x060024E2 RID: 9442 RVA: 0x00087B30 File Offset: 0x00085D30
    public static global::ODBNode <T> New(global::ODBList <T> list, T self)
    {
        global::ODBNode <T> odbnode;

        if (!global::ODBNode <T> .recycle.Pop(out odbnode))
        {
            odbnode = new global::ODBNode <T>();
        }
        odbnode.Setup(list, self);
        return(odbnode);
    }
コード例 #3
0
    // 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);
    }
コード例 #4
0
 // 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();
         }
     }
 }
コード例 #5
0
 // 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);
     }
 }
コード例 #6
0
 // 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);
     }
 }
コード例 #7
0
 // Token: 0x06002508 RID: 9480 RVA: 0x000884A0 File Offset: 0x000866A0
 public global::RecycleList <T> IntersectList(global::ODBList <T> list)
 {
     return(this.hashSet.IntersectList(list.hashSet));
 }
コード例 #8
0
 // Token: 0x06002506 RID: 9478 RVA: 0x0008847C File Offset: 0x0008667C
 public global::RecycleList <T> UnionList(global::ODBList <T> list)
 {
     return(this.hashSet.UnionList(list.hashSet));
 }
コード例 #9
0
 // Token: 0x060024BB RID: 9403 RVA: 0x00087720 File Offset: 0x00085920
 public ODBReverseEnumerable(global::ODBList <T> list)
 {
     this = new global::ODBReverseEnumerable <T>(list.last);
 }
コード例 #10
0
 // Token: 0x060024A5 RID: 9381 RVA: 0x00087520 File Offset: 0x00085720
 public ODBForwardEnumerator(global::ODBList <T> list)
 {
     this = new global::ODBForwardEnumerator <T>(list.first);
 }
コード例 #11
0
 // Token: 0x0600251A RID: 9498 RVA: 0x000885A0 File Offset: 0x000867A0
 public void SymmetricExceptWith(global::ODBList <T> list)
 {
     base.DoSymmetricExceptWith(list);
 }
コード例 #12
0
 // Token: 0x06002519 RID: 9497 RVA: 0x00088594 File Offset: 0x00086794
 public void ExceptWith(global::ODBList <T> list)
 {
     base.DoExceptWith(list);
 }
コード例 #13
0
 // Token: 0x06002518 RID: 9496 RVA: 0x00088588 File Offset: 0x00086788
 public void IntersectWith(global::ODBList <T> list)
 {
     base.DoIntersectWith(list);
 }
コード例 #14
0
 // Token: 0x06002517 RID: 9495 RVA: 0x0008857C File Offset: 0x0008677C
 public void UnionWith(global::ODBList <T> list)
 {
     base.DoUnionWith(list);
 }
コード例 #15
0
 // Token: 0x0600250C RID: 9484 RVA: 0x000884E8 File Offset: 0x000866E8
 public global::RecycleList <T> SymmetricExceptList(global::ODBList <T> list)
 {
     return(this.hashSet.SymmetricExceptList(list.hashSet));
 }
コード例 #16
0
 // Token: 0x0600250E RID: 9486 RVA: 0x0008850C File Offset: 0x0008670C
 public global::RecycleList <T> OperList(global::HSetOper oper, global::ODBList <T> list)
 {
     return(this.hashSet.OperList(oper, list.hashSet));
 }
コード例 #17
0
 // Token: 0x060024C2 RID: 9410 RVA: 0x000877B0 File Offset: 0x000859B0
 public ODBForwardEnumerable(global::ODBList <T> list)
 {
     this = new global::ODBForwardEnumerable <T>(list.last);
 }