C # Wie erstelle ich einen Guid-Wert?

Antworten:

897
Guid id = Guid.NewGuid();
David
quelle
252
Wenn Sie wie ich den Fehler machen (new Guid (). ToString ()), erhalten Sie 0000-00000-00000-00000. Sie müssen Guid.NewGuid (). ToString ()
Joao Carlos
12
Sie könnten daran interessiert sein, Guid auch zu formatieren msdn.microsoft.com/en-us/library/97af8hh4(v=vs.110).aspx
Anil Vangari
9
Kleine Korrektur, es gibt keine Funktion 'toString ()' für das Guid-Objekt, es ist 'ToString ()'
AB
95

Guid.NewGuid() erstellt eine neue zufällige Anleitung.

Adam Driscoll
quelle
83

Es gibt zwei Möglichkeiten

var guid = Guid.NewGuid();

oder

var guid = Guid.NewGuid().ToString();

Beide verwenden die Guid-Klasse, die erste erstellt ein Guid-Objekt, die zweite eine Guid-Zeichenfolge.

Justin
quelle
47
@ Justin, das ist eine Art, es zu tun. var guid = Guid.NewGuid().ToString()verwandelt es einfach in eine Zeichenfolge.
Michael Meadows
@MichaelMeadows Ja, das ist richtig, das erste erstellt ein neues Guid-Objekt, das zweite erstellt eine Zeichenfolge.
Justin
34
var guid = new Guid();

Hey, es ist eine "gültige", wenn auch nicht sehr nützliche Guid.

(Die Guid besteht nur aus Nullen, wenn Sie es nicht wissen. Manchmal wird dies benötigt, um keine Guid anzuzeigen, wenn Sie keine nullfähige Guid verwenden möchten.)


quelle
Das schafft nicht alle Nullen. Es wird eine gültige Guid erstellt. Guid.Empty gibt alle Nullen zurück.
FlavorScape
8
@FlavorScape, bevor Sie es versuchen, ich wette, Sie 50 Wiederholungen (über Kopfgeld) Sie sind falsch. Deal?
meh, ich dachte an Guid.NewGuid (). Es ist mir wirklich
wichtig
11
Ich habe Sie mit dieser Lösung um eins geschlagen:var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Jeppe Stig Nielsen
2
Wenn Sie eine Guid an Code übergeben müssen, den Sie nicht besitzen und der keine nullfähige Guid akzeptiert.
26

Um eine "leere" All-0-Guid wie zu machen 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

oder

var makeAllZeroGuID = System.Guid.Empty;

Um eine tatsächliche Guid mit einem eindeutigen Wert zu erstellen, was Sie wahrscheinlich wollen.

var uniqueGuID = System.Guid.NewGuid(); 
reza.cse08
quelle
21
System.Guid desiredGuid = System.Guid.NewGuid();
Siphab
quelle
Dies scheint der neue Weg zu sein, dies seit mindestens 2012 zu tun. Ich habe Guid.NewGuid () anscheinend nicht im Jahr 2015 verfügbar.
Dave Yarwood
2
@DaveYarwood Guid befindet sich seit sehr langer Zeit unter dem System-Namespace und ist das, worauf sich alle anderen in den anderen Antworten beziehen (es ist nur so, dass einer neuen Klasse bereits die Verwendung für den System-Namespace im hinzugefügt wurde normale Vorlage)
Skuld
18

Wenn Sie eine "gewünschte" Anleitung erstellen möchten, können Sie dies tun

var tempGuid = Guid.Parse("<guidValue>");

wo <guidValue>wäre so etwas 1A3B944E-3632-467B-A53A-206305310BAE.

Zeliax
quelle
2

Es gibt auch ShortGuid - Eine kürzere und url-freundliche GUID-Klasse in C #. Es ist als Nuget erhältlich . Weitere Informationen hier .

PM> Install-Package CSharpVitamins.ShortGuid

Verwendungszweck:

Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);

Dadurch wird eine neue Guid erstellt, diese Guid zum Erstellen einer ShortGuid verwendet und die beiden entsprechenden Werte in der Konsole angezeigt. Die Ergebnisse wären wie folgt:

ShortGuid: FEx1sZbSD0ugmgMAF_RGHw 
Guid:      b1754c14-d296-4b0f-a09a-030017f4461f
Joel Wiklund
quelle
0

Wenn Sie dies in Reflection C # verwenden, können Sie die Guid wie folgt aus dem Eigenschaftsattribut abrufen

var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
  var myguid= Guid.Parse(attribute.Id.ToString());
}

SAliaMunch
quelle
-2
//Retrive your key ID on the bases of GUID 

declare @ID as uniqueidentifier

SET @ID=NEWID()
insert into Sector(Sector,CID)

Values ('Diry7',@ID)


select SECTORID from sector where CID=@ID
Sammer
quelle
kann alternatvity verwendet werden SCOPE.IDENTITY ()
sammer
28
C # sieht ganz anders aus als ich mich erinnere.
Archibald