ハイフンなしのGUIDの生成


104

コードで次のステートメントを使用してGUIDを生成しています

byte[ ] keyBytes = Encoding.UTF8.GetBytes( Guid.NewGuid( ).ToString( ).Substring( 0, 12 ) );

しかし、GUIDが生成されると、GUIDにもハイフン文字が含まれていることがわかります。文字(大文字と小文字)と数字のみでGUIDを生成するにはどうすればよいですか?ハイフンは必要ありません。誰かが私にそう考えさせることができますか?

回答:


273

Guidの(正規の)文字列表現について話していることに注意してください。Guid自体は実際には128ビットの整数値です。

Guid.ToString(String)オーバーロードで「N」指定子を使用できます。

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

デフォルトでは、文字は小文字です。大文字のみのGUIDは、すべてを手動で大文字に変換することによってのみ実現できます。次に例を示します。

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

文字または数字のみのGUIDは意味がありません。GUID文字列表現は16進数であるため、常に(ほとんどの場合)両方が含まれます。


数字と一緒に大文字と小文字の両方でGUIDを作成することは可能ですか?
Harish Kumar 2012年

7
@HarishKumar意味がありません。GUID文字列は16進数です。その表記では、「a」は「A」と同じです。そのため、あなたはあなたが望むケーシングのすべての文字を印刷することができます(しかし、私はそれで本当に意味がありません)。
Christian.K

しかし、私が望んでいるのは、小文字、大文字、数字の混合であるGUID文字列です...逆ソートを実行できますか?
Harish Kumar

7
@HarishKumarどの文字を大文字にし、どの文字を小文字にするかをどのように決定しますか?もちろん、あなたはstring.Replace(char, char)それを達成するために自由に使用できますが、実際にはそれは無意味で不要です。新しい質問を投稿して、本当に達成したいことを尋ねてみてください。GUID文字列のハイフンを取り除くだけではないようです。
Christian.K

0
Guid.NewGuid().ToString().Replace("-", string.Empty)

20
これでうまくいきますが、他に何もなければ、それは余分な作業です(そしておそらく不要な文字列割り当てです)。
Christian.K
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.