Mit unklaren Anforderungen bekommt man meist nicht das was man erwartet.
q.e.d.
Wenn Du mit elegant möglichs kurzen Code meinst, dass ist das mit dem Hash m.E. am Besten.
Wenn es dagegen z.B. um die Laufzeit geht gibt es sicher noch schnellere Methoden, einiges wurde ja hier auch schon andiskutiert.
Zudem: Beyond Compare hat zig. Optionen mit denen man einstellen kann was man mit "gleich" meint