2012-10-16 17 views
7

Utilizzando .NET Framework, esiste un modo per creare un GUID casuale in C# entro un intervallo specificato? Ad esempio, ho bisogno di un GUID casuale maggiore di ffffffff-ffff-ffff-ffff-1fffffffffffff e minore di ffffffff-ffff-ffff-ffff-2fffffffffffff.Creare un GUID casuale in C# entro un intervallo specificato

+0

Cosa fare se è necessario generare più GUID di quelli presenti nell'intervallo? E.g Il tuo algoritmo è chiamato 20 volte per la gamma ffffffff-ffff-ffff-ffff-fffffffffffff0 a ffffffff-ffff-ffff-ffff-ffffffffffffff? –

+2

Non è come funzionano, in generale. C'è un elemento non casuale ad esso, ma per ragioni di versioning e simili, non puoi semplicemente (con GUID casuali) generarne uno in un particolare intervallo. Altrimenti non avrebbero funzionato come loro. – ssube

risposta

7

Uso 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) crea un GUID che corrisponde a:

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

È possibile randomizzare i parametri di qualsiasi modo tu voglia. Ad esempio, puoi fare:

-

Bene, hai capito. Devi fare un po 'di giocherellando per ottenere il quinto parametro giusto.

+3

Anche se questo potrebbe essere l'ovvio, solo perché è un "Guid" non significa che sia un GUID. Cioè, spetta a te assicurarti che il tuo algoritmo garantisca l'unicità globale. Altrimenti è solo un 'Id'. –

Problemi correlati