7

.NET Framework を使用して、指定された間隔内で C# でランダムな GUID を作成する方法はありますか? たとえば、ffffffff-ffff-ffff-ffff-1fffffffffffff より大きく、ffffffff-ffff-ffff-ffff-2ffffffffffffff より小さいランダム GUID が必要です。

4

1 に答える 1

7

このオーバーロードを使用します:

[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)以下に対応する Guid を作成します。

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

パラメータは好きなようにランダム化できます。たとえば、次のことができます。

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]...

さて、あなたはその考えを理解します。5 番目のパラメーターを正しく設定するには、少し調整する必要があります。

于 2012-10-16T03:53:07.703 に答える