One additional observation: if you think the two arrays in the previous comment should be considered equal, how do you think these two should be handled instead?
object[] array1 = new object[2]; array1[0] = array1; array1[1] = 1;
object[] array2 = new object[2]; array2[0] = array2; array2[1] = 1;
These are the same arrays as above, just with the elements in the reverse order.
And what about these two?
object[] array1 = new object[2]; object[] array2 = new object[2];
array1[0] = 1; array1[1] = array2;
array2[0] = 1; array2[1] = array1;
One additional observation: if you think the two arrays in the previous comment should be considered equal, how do you think these two should be handled instead?
These are the same arrays as above, just with the elements in the reverse order.
And what about these two?