public override bool Equals(object b) { if (b == null || !(b is List <V>)) { return(false); } int s = this.Size(); List <V> l = (List <V>)b; if (s != l.Size()) { return(false); } for (int i = 0; i < s; i++) { object e1 = this.Get(i); object e2 = l.Get(i); if (!(e1 == null ? e2 == null : e1.Equals(e2))) { return(false); } } return(true); }