Array.Equals() does not compare array internals but object reference, implement substitute. String.Substring() has a different API than Java, correct.