简体   繁体   English

在指定的时间间隔内在C#中创建随机GUID

[英]Create a random GUID in C# within a specified interval

Using the .NET Framework, is there a way to create a random GUID in C# within a specified interval? 使用.NET Framework,有没有办法在指定的时间间隔内在C#中创建随机GUID? For example, I need a random GUID that is greater than ffffffff-ffff-ffff-ffff-1fffffffffffff and less than ffffffff-ffff-ffff-ffff-2fffffffffffff. 例如,我需要一个大于ffffffff-ffff-ffff-ffff-1fffffffffffff且小于ffffffff-ffff-ffff-ffff-2fffffffffffff的随机GUID。

Use this overload : 使用此重载

[CLSCompliantAttribute(false)]
public Guid(
    uint a,
    ushort b,
    ushort c,
    byte d,
    byte e,
    byte f,
    byte g,
    byte h,
    byte i,
    byte j,
    byte k
)

Guid(0xa,0xb,0xc,0,1,2,3,4,5,6,7) creates a Guid that corresponds to: Guid(0xa,0xb,0xc,0,1,2,3,4,5,6,7)创建一个Guid,对应于:

0000000a-000b-000c-0001-020304050607

You can randomize the parameters any way you like. 您可以按照自己喜欢的方式随机化参数。 For example, you can do: 例如,你可以这样做:

var r[] = new byte[] { 1,2,3,4 } // chosen by fair dice rolls
                                 // guaranteed to be random

var guid = new GUID(0xFFFFFFFF, 0xFFFF, 0xFFFF, 0xFFFF, r[1], r[2], r[3], r[4]...

Well, you get the idea. 反正你懂这个意思。 You have to do some bit twiddling to get the fifth parameter right. 你必须做一些小事以使第五个参数正确。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM