Это хорошая идея, чтобы удалить тире из GUID? - PullRequest
22 голосов
/ 20 октября 2011

У меня есть код, который заменяет черту с пустыми строками в GUID.

Replace(System.Guid.NewGuid.ToString, "-", "")

Будет ли это удалять уникальность guid?

Также кто-то может это подтвердить тоже?

Мы храним GUID в нашей базе данных как char (32).Все хорошо?Поскольку у нас есть международные пользователи в разных часовых поясах, мы обеспокоены тем, что длина символов может превысить 32. Спасибо.

Ответы [ 3 ]

54 голосов
/ 20 октября 2011

Черточки всегда находятся в одном и том же месте, поэтому нет, это не уменьшит уникальность.

System.Guid.NewGuid().ToString("N");

Сгенерирует GUID без тире, как в этой документации

26 голосов
/ 20 октября 2011

Нет, уникальность Guid гарантирована.
Тире предназначены только для удобства чтения: внутренне Guid состоит из 16 байтов.
Вы можете видеть Microsoft и Википедия для более подробной информации.
Взгляните также на конструкторов:

public Guid(int a, short b, short c, byte[] d);
public Guid(int a, short b, short c, byte d, 
            byte e, byte f, byte g, byte h, 
            byte i, byte
public Guid(uint a, ushort b, ushort c, byte d, 
            byte e, byte f, byte g, byte h, 
            byte i, byte j, byte k);
5 голосов
/ 20 октября 2011

Черточки не являются частью самого руководства. Они просто являются частью общего представления гидов. Поэтому удаление не изменит само значение Guid.

...