C#如何创建Guid值?

5Yr*_*DBA 464 c# guid

我们结构的一个字段是Guid类型.如何为它生成有效值?

Dav*_*vid 854

Guid id = Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)

  • 如果你像我一样做错了(新的Guid().toString()),你会得到0000-00000-00000-00000.你需要做Guid.NewGuid().toString() (238认同)
  • 你可能有兴趣格式化Guid https://msdn.microsoft.com/en-us/library/97af8hh4(v=vs.110).aspx (10认同)
  • 很少修正,Guid对象上没有'toString()'函数,它是'ToString()' (8认同)

Ada*_*oll 92

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


Jus*_*tin 82

有两种方法

var guid = Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)

要么

var guid = Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)

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

  • @Justin,这是一种做到这一点的方法.`var guid = Guid.NewGuid().ToString()`只是把它变成一个字符串. (46认同)

Dan*_*olt 56

Guid.NewGuid()将创建一个


小智 33

var guid = new Guid();
Run Code Online (Sandbox Code Playgroud)

嘿,它是一个'有效',虽然不是很有用,Guid.

(如果你不知道的话,guid全是零.有时你需要指示没有guid,如果你不想使用可以为空的Guid)

  • 我用这个解决方案打败了你:`var guid = new Guid(new byte [] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,1,});` (11认同)
  • @FlavorScape在你尝试之前,我打赌你50个代表(通过赏金)你错了.交易吗? (8认同)
  • 当您必须将 guid 传递给您不拥有的代码时,该代码不接受可为空的 guid。 (2认同)

rez*_*e08 25

要制作一个"空"全0引导的像00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();
Run Code Online (Sandbox Code Playgroud)

要么

var makeAllZeroGuID = System.Guid.Empty;
Run Code Online (Sandbox Code Playgroud)

要制作具有唯一值的实际guid,您可能需要什么.

var uniqueGuID = System.Guid.NewGuid(); 
Run Code Online (Sandbox Code Playgroud)


小智 21

System.Guid desiredGuid = System.Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)

  • @DaveYarwood Guid已经在System命名空间下工作了很长时间,并且是其他人在其他答案中引用的内容(恰好是一个新类已经在系统命名空间中添加了一个普通模板) (2认同)

Zel*_*iax 15

如果你想创造一个"理想的"指导你可以做

var tempGuid = Guid.Parse("<guidValue>");
Run Code Online (Sandbox Code Playgroud)

哪里<guidValue>会是这样的1A3B944E-3632-467B-A53A-206305310BAE.


xqt*_*qtr 7

还有 ShortGuid - C# 中的较短且 url 友好的 GUID 类。它以Nuget形式提供。更多信息请参见此处

PM> Install-Package CSharpVitamins.ShortGuid
Run Code Online (Sandbox Code Playgroud)

用法:

Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);
Run Code Online (Sandbox Code Playgroud)

这会生成一个新的 guid,使用该 guid 创建一个 ShortGuid,并在控制台中显示两个等效值。结果将类似于:

ShortGuid: FEx1sZbSD0ugmgMAF_RGHw 
Guid:      b1754c14-d296-4b0f-a09a-030017f4461f
Run Code Online (Sandbox Code Playgroud)