如何生成类似于00000000-0000-0000-0000-B7B9B3A4A0DE
除了最后一部分,它应该都是零。
答案 0 :(得分:9)
你的意思并不清楚。例如,这有效:
Guid guid = Guid.Parse("00000000-0000-0000-0000-B7B9B3A4A0DE");
因此,您可以毫无问题地将文本转换为Guid。如果你想生成这样的Guid,你总是可以生成6个随机字节(例如RandomNumberGenerator
)并将适当的字节数组传递给Guid(byte[])
。例如:
using System;
using System.Security.Cryptography;
class Test
{
static void Main()
{
var rng = RandomNumberGenerator.Create();
byte[] randomBytes = new byte[6];
rng.GetBytes(randomBytes);
byte[] guidBytes = new byte[16];
Buffer.BlockCopy(randomBytes, 0, guidBytes, 10, 6);
Guid guid = new Guid(guidBytes);
Console.WriteLine(guid);
}
}
答案 1 :(得分:1)
我的建议是使用Guid.NewGuid()
生成标准Guid,将其转换为字符串,然后使用new Guid('0000 etc.')
将其转换为Guid,例如,
var guidString = Guid.NewGuid().ToString();
/* manipulate guidString to zero out all but the last parts */
var guid = new Guid(guidString);
答案 2 :(得分:1)
new Guid("00000000-0000-0000-0000-" + Guid.NewGuid().ToString().Substring(24, 12))