C# GUID ToString的使用总结

最近在看到小伙伴直接使用 Guid.ToString 方法,我告诉他需要使用 Guid.ToString(“N”) 的方式输出字符串 ,为什么需要使用 N 这个参数呢,因为默认的是参数 D 在输出的时候会出现连字符

Guid 是 Globally Unique Identifier 全局唯一标识符的缩写,是一种由算法生成的唯一标识,在 C# dotnet 里面的 Guid 类是微软的UUID标准的实现。

Guid.ToString 里面可以添加下面几个参数,“N”,“D”,“B”,“P”,“X” 等

如果直接使用 Guid.ToString() 那么就是使用 “D” 这个参数,添加了这个参数之后的输出格式大概如下,也就是在字符串中添加连字符

00000000-0000-0000-0000-000000000000
536b4dd7-f3dd-4664-bd69-bc0859d710ab

如果使用 “N” 那么就是只有32位数字,没有连字符,这里的数字是 16 进制表示的,也就是说字符串有 a-f 这几个英文字符和 0-9 的数字

00000000000000000000000000000000
2329fcac4fd640f1bc221e254b14d621

在我的业务里面,没有连字符看起来比较好看,于是我就建议小伙伴使用 Guid 的字符串输出的时候加上 N 这个参数

而在 Guid 格式化输出里面,可以选的参数中的 B 和 P 这只是在使用括号包字符串,如以下代码

      System.Console.WriteLine(Guid.NewGuid().ToString("B"));
      {e34dead4-212d-442a-8f4c-e00107baec24}
System.Console.WriteLine(Guid.NewGuid().ToString("P"));
(ac10d607-2b39-448f-99b5-0a3205cc9ac1)

从代码可以看到 B 使用 { 括号包含内容 ,使用参数 P 将使用 ( 括号包含内容

在 Guid 格式化中的最特殊的是 x 参数,他会存在 4 个数字,最后一个数字是 8 个数字组合的,如下面代码

  Console.WriteLine(Guid.NewGuid().ToString("X"));
 {0xd3f51d9d,0x31b3,0x45f6,{0x9b,0x7c,0x89,0x1d,0xa5,0x6a,0xa3,0x43}}

GUID 转 int

一个 GUID 需要 16 个 byte 也就是 4 个 int 才能组成,可以使用下面的方法转换

   public static int[] Guid2Int(Guid value)
    {
      byte[] b = value.ToByteArray();
      int bint = BitConverter.ToInt32(b, 0);
      var bint1 = BitConverter.ToInt32(b, 4);
      var bint2 = BitConverter.ToInt32(b, 8);
      var bint3 = BitConverter.ToInt32(b, 12);
      return new[] {bint, bint1, bint2, bint3};
    }

    public static Guid Int2Guid(int value, int value1, int value2, int value3)
    {
      byte[] bytes = new byte[16];
      BitConverter.GetBytes(value).CopyTo(bytes, 0);
      BitConverter.GetBytes(value1).CopyTo(bytes, 4);
      BitConverter.GetBytes(value2).CopyTo(bytes, 8);
      BitConverter.GetBytes(value3).CopyTo(bytes, 12);
      return new Guid(bytes);
    }

本文会经常更新,请阅读原文: https://blog.lindexi.com/post/C-GUID-ToString.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

以上就是C# GUID ToString的使用总结的详细内容,更多关于C# GUID ToString的资料请关注我们其它相关文章!

(0)

相关推荐

  • c#中的常用ToString()方法总结

    对于int,double等的tostring: C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2") 25.00 G 常规 2.5.ToString("G") 2.5 N 数字 2500000.ToString(&q

  • C#中ToString数据类型格式大全(千分符)

    用DataFormatString格式化GridView 在 GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了, 在.net中,查了半天msdn,发现使用DataFormatString是可以实现这个功能的,但是怎么设置就不起作用,最后发现,由于2.0出于安 全性的考虑,还要同时设置HtmlEncode = false,才能够使DataFormatString生效. 留个记号,下次用的时候,就不用浪费N多时间

  • C#中BitConverter.ToUInt16()和BitConverter.ToString()的简单使用

    下面是msdn中的一个例子,在我刚看到这里例子时,该例子有三点是我可以学到的. 第一:排列格式.如:定义一个常量变量const  string  a="{0,11}{1,10},{2,7}"; 这样一个格式用来排列三个变量的位置,第一个变量占5个位置,第二个变量占8个位置,第三个变量占10个位置.中英文都算一个位置.比如在控制台上输出 Console.WriteLine(a,"以后想找什么当另外一半","找个又帅又有车的","那买副象棋

  • 浅谈c#.net中巧用ToString()将日期转成想要的格式

    C#时间/日期格式大全,C#时间/日期函数大全 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢? 我们要用到: 复制代码 代码如下: DateTime.ToString的方法(String, IFormatProvider) using System; using System.Globalization; String format="D"; DateTime

  • C# 中GUID生成格式的四种方法

    C#中GUID的生成以及格式 1.GUID是在System命名空间下的结构(struct)体,下面展示实例. (1)创建一个GUID帮助类(GUIDHelper) using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebDemo.guid { public class GuIdHelper { /// <summary> /// GUID生成 /// &l

  • C# ToString格式大全

    字符型转换为字符串 // C 货币  2.5.ToString("C"); // ¥2.50  // D 10进制数  25.ToString("D5"); // 25000  // E 科学型  25000.ToString("E"); // 2.500000E+005  // F 固定点  25.ToString("F2"); // 25.00  "F?"表示保持几位小数 // G 常规  2.5.To

  • ToString()使用方法汇总(c#)

    ToString()使用方法汇总(C#) C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2") 25.00 G 常规 2.5.ToString("G") 2.5 数字 2500000.ToString("N

  • C# Guid.NewGuid获得随机数

    复制代码 代码如下: static int GetRandomNumber(int min, int max)        {            int rtn = 0; Random r = new Random(); byte[] buffer = Guid.NewGuid().ToByteArray();            int iSeed = BitConverter.ToInt32(buffer, 0);            r = new Random(iSeed);

  • C# Guid长度雪花简单生成器的示例代码

    标准的long雪花长度为64bit,还要浪费1bit,然后41位时间,10位workid,12位序列 guid长度128位,64位完整的时间tick,32位workid,32位序列,可谓随便用满非常豪华 也就是系统里可以根据需要有的地方存随机guid,有的地方存雪花guid,随便换 随后还有提取时间的方法,由于是64位完整时间,直接拿出来转时间就好了 这个类参考别人的代码,如果需要设计更完善的guid雪花,可以在github上或者nuget上找newid这个项目,老外写好的更完善的做法 publ

  • C# GUID ToString的使用总结

    最近在看到小伙伴直接使用 Guid.ToString 方法,我告诉他需要使用 Guid.ToString("N") 的方式输出字符串 ,为什么需要使用 N 这个参数呢,因为默认的是参数 D 在输出的时候会出现连字符 Guid 是 Globally Unique Identifier 全局唯一标识符的缩写,是一种由算法生成的唯一标识,在 C# dotnet 里面的 Guid 类是微软的UUID标准的实现. Guid.ToString 里面可以添加下面几个参数,"N",

  • asp.net System.Guid ToString五种格式

    参考:https://msdn.microsoft.com/en-us/library/97af8hh4.aspx 测试代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GuidToString { class Program { static void Main(string[] args) { Console.WriteLine(" -->

  • 在ASP里面创建GUID

    代码如下:JScript 复制代码 代码如下: function GenerateGuid() {      var TypeLib = new ActiveXObject("Scriptlet.TypeLib");      return (TypeLib.Guid);  } VBScript 复制代码 代码如下: Function GenerateGuid()      Dim TypeLib      Set TypeLib = Server.CreateObject("

  • 使用 GUID 值来作为数据库行标识讲解

    GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值. GUID 的格式为"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字.例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值. 世界上的任何两台计算机都不会

  • C#生成唯一值的方法汇总

    生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: 一.在 .NET 中生成 1.直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛.GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台计算机都不会生成重复的 GUID 值(即保证所有机器都是唯一的).关于GUID的介绍在此不作具体熬述,想深入了解可以自行查阅MSDN.代码如下: 复制代码 代码如下: using Syst

  • C#基础:基于const与readonly的深入研究

    •readonly和const都是用来标识常量的[1].•const可用于修饰class的field或者一个局部变量(local variable):而readonly仅仅用于修饰class的field.•const常量的值必定在编译时就已明确并且恒定的:而readonly常量却有一点不同,那就是其值可以在运行时编译,当然,它也必须遵守作为常量的约束,那就是值必须恒定不变.•const常量必须在声明的同时对其进行赋值,并且确保该值在编译时可确定并恒定:而readonly常量则可以根据情况选择在声

  • C#滑动验证码拼图验证功能实现(SlideCaptcha)

    目录 使用背景: 实现分析: 后端代码: 准备: 使用: 前端代码: 结语: 使用背景: 关于滑动验证码的使用场所还是非常多的,如:调取短信接口之前,和 注册请求之前 或者 频繁会调用的接口都需要加这个拼图验证.这里先上一下效果图吧(心中无码,自然高清). 话不多说,开撸! 实现分析: 滑动验证码的逻辑也很简单.大概说一下: 1,服务器生成主图+附图(从主图裁剪下来的不需要管y坐标)并且存储X坐标: 2,前端传入本地X坐标到服务器. 3,服务器进行计算存储X坐标和本地X坐标相差值: 4,验证相差

  • JavaScript生成GUID的多种算法小结

    全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度为128位的数字标识符.GUID 的格式为"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数.在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID. GUID 的总数达到了2^128(3

  • JavaScript实现生成GUID(全局统一标识符)

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.GUID的唯一缺陷在于生成的结果串会比较大. GUID的格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 大家都知道GUID在前端开发中用处不大,但如果需要插入某个ID,并且这个ID与后台对应等其它需要GUID的操作时,为了方便,我们还是可以生成一个GUID

  • 原生JavaScript生成GUID的实现示例

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.GUID的唯一缺陷在于生成的结果串会比较大. GUID的格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 大家都知道GUID在前端开发中用处不大,但如果需要插入某个ID,并且这个ID与后台对应等其它需要GUID的操作时,为了方便,我们还是可以生成一个GUID

随机推荐