GetHashCode предназначен исключительно для хеширования в словаре. Вы не должны нигде использовать его в качестве идентификатора из-за возможных коллизий хешей . Он возвращает Int32 и, например, для String можно иметь более 2 147 483 647 уникальных строк. Две разные строки могут иметь одинаковый хэш-код. Сказав, что у вас есть два варианта:
1) Если вам нужно, чтобы ваш идентификатор был получен из фактических значений. Например, если вам нужно быстро определить, сохранился ли новый объект, не десериализовав все объекты и не сравнив их с рассматриваемым объектом. Вы можете использовать ComputeHash на SHA1, например.
2) Если вам не нужно, чтобы идентификатор был получен из фактических значений, вы можете просто сгенерировать Guid как bbogovich .