有如何生成GUID的方法如下?

时间:2011-02-23 06:27:31

标签: c# guid

如何生成类似于00000000-0000-0000-0000-B7B9B3A4A0DE

的GUID

除了最后一部分,它应该都是零。

3 个答案:

答案 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))