2011-10-20 12 views
18

ダッシュを空の文字列でGUIDに置き換えるコードがあります。ダッシュをGUIDから削除することをお勧めしますか?

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

guidの一意性を削除しますか?

誰かもこれを確認できますか?

GUIDをデータベースにchar(32)として格納しています。それは大丈夫ですか?異なるタイムゾーンにいる国際ユーザーがいるため、文字の長さが32を超えることが懸念されます。ありがとう。

+11

ちょうどそのように、 ' - ' charを置き換える代わりに、GuidのToStringを使用することを知っていますか?単純にNフォーマットを使用してください:System.Guid.NewGuid.ToString( "N") –

答えて

23

いいえ、Guidの一意性が保証されています。
ダッシュは読みやすくするためのものです。内部ではGuidは16バイトです。
詳細はMicrosoftWikipediaです。

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); 
+3

+1、簡単な答え –

+0

戻ってきてくれてありがとうございました。私たちはguidをデータベースにchar(32)として保存しています。国際的なウェブサイトや異なるタイムゾーンのために可能でしょうか?文字の長さは32を超えることができますか? – Salman

50

ダッシュが同じ場所に常にあるので、いいえ、それは一意性を減らすことはありません:
はあまりにもコンストラクタを見てみましょう。

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

はダッシュがGUID自体の一部ではない、このdocumentation

+0

+1の教授のためにこの新しい構文:) – Marco

+0

ニース、非常に非常に良い。 – fuzz

4

のように、ダッシュなしのGUIDを生成します。それらは単にguidの共通の表現の一部です。したがって、削除によってGuidの値自体は変更されません。

関連する問題