如何在C#中创建Guid值?

622

我们的结构体中有一个字段是Guid类型。如何生成有效值?


1
在线上您可以使用此链接 https://devtoolsonline20190908040816.azurewebsites.net/DevTools/GuidGenerator - GomuGomuNoRocket
13个回答

1109
Guid id = Guid.NewGuid();

335
如果你和我一样犯了(new Guid().toString())的错误,你会得到0000-00000-00000-00000。你需要使用Guid.NewGuid().toString()。 - Joao Carlos
16
您可能会对格式化 GUID 指南感兴趣。https://msdn.microsoft.com/zh-cn/library/97af8hh4(v=vs.110).aspx - Anil Vangari
14
稍作修改,Guid对象上没有名为'toString()'的函数,正确的是'ToString()'。 - A.B.

108

有两种方法

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

两者都使用Guid类,第一个创建Guid对象,第二个创建Guid字符串。


54
@Justin,这是一种方法。var guid = Guid.NewGuid().ToString() 仅将其转换为字符串。 - Michael Meadows
1
@MichaelMeadows 是的,没错。第一个创建了一个新的Guid对象,第二个创建了一个字符串。 - Justin

106

Guid.NewGuid()创建一个新的随机GUID。


61

37

要创建一个类似于00000000-0000-0000-0000-000000000000的“空”全零GUID。

var makeAllZeroGuID = new System.Guid();
或者
var makeAllZeroGuID = System.Guid.Empty;
为了创建一个真正具有唯一值的 GUID,您可能想要使用以下代码:

为了创建一个具有唯一值的实际GUID,您可能想要:

var uniqueGuID = System.Guid.NewGuid(); 

36
var guid = new Guid();

嘿,这是一个“有效”的,虽然不是很有用的Guid。

(如果你不知道,这个guid全部都是零。有时在表示不想使用可空Guid的情况下需要这样做)


这并不会创建全零。它会创建一个有效的Guid。Guid.Empty返回全零。 - FlavorScape
10
在你尝试之前,我打赌50声望(通过悬赏)说你是错的。成交吗? - user1228
我在考虑使用Guid.NewGuid()。我非常关心验证新的Guid()。 - FlavorScape
11
我用这个解决方案赢了你一个:var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });,意思是创建一个 GUID 对象并将其设置为所有位都为零,最后一位为一。 - Jeppe Stig Nielsen
3
当你必须向不接受可空guid的代码传递guid时。 - user1228
显示剩余2条评论

32
如果你想创建一个“期望”的 GUID,可以执行以下操作
var tempGuid = Guid.Parse("<guidValue>");

其中 <guidValue> 将类似于 1A3B944E-3632-467B-A53A-206305310BAE


22
System.Guid desiredGuid = System.Guid.NewGuid();

这似乎是至少在2012年以来的新方法。我在2015年好像没有可用的Guid.NewGuid()。 - Dave Yarwood
2
@DaveYarwood Guid 已经在 System 命名空间下使用了很长时间,其他答案中提到的就是指它(只不过新类在常规模板中已经添加了 System 命名空间的 Using)。 - Stephen

7

还有一个叫做ShortGuid的东西 - 它是一个C#中更短且适合url的GUID类。它可以作为Nuget下载。更多信息请看这里

PM> Install-Package CSharpVitamins.ShortGuid

使用方法:

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

这会产生一个新的guid,使用该guid创建一个ShortGuid,并在控制台中显示两个等效值。结果可能如下:

ShortGuid: FEx1sZbSD0ugmgMAF_RGHw 
Guid:      b1754c14-d296-4b0f-a09a-030017f4461f

2
使用'

Guid guid = Guid.NewGuid();

你需要:
using System;

主要用于任何C#代码。
如果有任何问题,请确保Guid没有被覆盖

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接