Единственное различие между Equal и == заключается в сравнении типов объектов. в других случаях, таких как ссылочные типы и типы значений, они почти одинаковы (либо оба являются поразрядным равенством, либо оба являются ссылочным равенством).
object: Equals: bit-wise равенство ==: reference равенство
string: (equals и == одинаковы для строки, но если одна из строк была изменена на объект, тогда результат сравнения будет разным). Равны: побитовое равенство ==: битовое равенство
Подробнее см. здесь .