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); }
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); }
public void Dispose() { this.class236_0 = null; }
public Struct82(zzCollection1 <T> class236_1) { this = default(zzCollection1 <T> .Struct82); this.class236_0 = class236_1; this.int_1 = class236_1.int_5; }