예제 #1
0
        public bool Remove(T item)
        {
            int num  = this.method_5(item);
            int num2 = (num & 2147483647) % this.int_0.Length;
            int num3 = this.int_0[num2] - 1;

            if (num3 == -1)
            {
                return(false);
            }
            int num4 = -1;

            do
            {
                zzCollection1 <T> .Struct81 @struct = this.struct81_0[num3];
                if (@struct.int_0 == num)
                {
                    if ((num != -2147483648 || (item != null && this.gparam_0[num3] != null)) ? this.iequalityComparer_0.Equals(this.gparam_0[num3], item) : (item == null && null == this.gparam_0[num3]))
                    {
                        break;
                    }
                }
                num4 = num3;
                num3 = @struct.int_1;
            }while (num3 != -1);
            if (num3 == -1)
            {
                return(false);
            }
            this.int_3--;
            if (num4 == -1)
            {
                this.int_0[num2] = this.struct81_0[num3].int_1 + 1;
            }
            else
            {
                this.struct81_0[num4].int_1 = this.struct81_0[num3].int_1;
            }
            this.struct81_0[num3].int_1 = this.int_2;
            this.int_2 = num3;
            this.struct81_0[num3].int_0 = 0;
            this.gparam_0[num3]         = default(T);
            this.int_5++;
            return(true);
        }
예제 #2
0
        private void method_3()
        {
            int num = zzCollection1 <T> .Class237.smethod_2(this.int_0.Length << 1 | 1);

            int[] array = new int[num];
            zzCollection1 <T> .Struct81[] array2 = new zzCollection1 <T> .Struct81[num];
            for (int i = 0; i < this.int_0.Length; i++)
            {
                for (int num2 = this.int_0[i] - 1; num2 != -1; num2 = this.struct81_0[num2].int_1)
                {
                    int num3 = array2[num2].int_0 = this.method_5(this.gparam_0[num2]);
                    int num4 = (num3 & 2147483647) % num;
                    array2[num2].int_1 = array[num4] - 1;
                    array[num4]        = num2 + 1;
                }
            }
            this.int_0      = array;
            this.struct81_0 = array2;
            T[] destinationArray = new T[num];
            Array.Copy(this.gparam_0, 0, destinationArray, 0, this.int_1);
            this.gparam_0 = destinationArray;
            this.int_4    = (int)((float)num * 0.9f);
        }
예제 #3
0
 public void Dispose()
 {
     this.class236_0 = null;
 }
예제 #4
0
 public Struct82(zzCollection1 <T> class236_1)
 {
     this            = default(zzCollection1 <T> .Struct82);
     this.class236_0 = class236_1;
     this.int_1      = class236_1.int_5;
 }