2018-10-19-C#-GUID-ToString-
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
C# GUID ToString
|
lindexi
|
2018-10-19 9:4:44 +0800
|
2018-4-1 10:16:6 +0800
|
C#
|
最近在看到小伙伴直接使用 Guid.ToString ,我告诉他需要使用 Guid.ToString("N") ,为什么需要使用 N ,因为默认的是 D 会出现连字符。
Guid 是 Globally Unique Identifier 全局唯一标识符,是一种由算法生成的唯一标识是微软的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
00000000000000000000000000000000
2329fcac4fd640f1bc221e254b14d621
所以我就建议使用 N ,剩下的 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 使用(,但是最特殊的是 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);
}
2018-10-19-C#-GUID-ToString-的更多相关文章
- IDC Digital Transition Annual Festival(2018.10.19)
时间:2018.10.19地点:北京万达文化酒店
- 2018.10.19浪在ACM 集训队第一次测试赛
2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 2018.10.19 bzoj1057: [ZJOI2007]棋盘制作(悬线法)
传送门 悬线法板题. 如果只求最大矩形面积那么跟玉蟾宫是一道题. 现在要求最大正方形面积. 所以每次更新最大矩形面积时用矩形宽的平方更新一下正方形答案就行了. 代码: #include<bits ...
- 2018.10.19 NOIP训练 变化的序列(线性dp)
传送门 f[i][j]f[i][j]f[i][j]表示后iii个对答案贡献有jjj个a的方案数. 可以发现最后a,ba,ba,b的总个数一定是n∗(n−1)/2n*(n-1)/2n∗(n−1)/2 因 ...
- 2018.10.19 NOIP训练 桌子(快速幂优化dp)
传送门 勉强算一道dp好题. 显然第kkk列和第k+nk+nk+n列放的棋子数是相同的. 因此只需要统计出前nnn列的选法数. 对于前mmm%nnn列,一共有(m−1)/n+1(m-1)/n+1(m− ...
- 2018.10.19 bzoj1584: Cleaning Up 打扫卫生(线性dp)
传送门 dp妙题. 考虑到每个位置分一组才花费nnn的贡献. 因此某一段不同的数的个数不能超过sqrt(n)sqrt(n)sqrt(n),于是对于当前的位置iii我们记pos[j]pos[j]pos[ ...
- 2018.10.19 NOIP模拟 比特战争(kruskal)
传送门 考完发现是sbsbsb题啊. 直接考虑优化状压的转移. 可以证明最优解一定在求最小生成树的时候取得. 因此再最小生成树时维护一下连通块的最值统计答案就行了. 代码
- 2018.10.19 NOIP模拟 硬币(矩阵快速幂优化dp)
传送门 不得不说神仙出题人DZYODZYODZYO出的题是真的妙. f[i][j][k]f[i][j][k]f[i][j][k]表示选的硬币最大面值为iii最小面值不小于jjj,总面值为kkk时的选法 ...
- 2018.10.19 NOIP模拟 加密(模拟)
传送门 直接按hashhashhash函数反着算回去就行了. 加法用exgcdexgcdexgcd,异或直接枚举二进制位. 代码
随机推荐
- HttpClient 之 4.x.x版本以上的发送Https请求
https请求比http更安全 是在http的基础上加了SSL数据加密协议. http的连接很简单,是无状态的:HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比htt ...
- getopts的执行过程
- Linux查询Java进程以及杀掉其进程
今天公司VPN掉线后,访问项目出错502. 百度了说是nginx代理错误,但入职不久不知道咋搞... 于是乎就想重启一下Java应用. 1.找到Java应用的进程 jps 命令 和 ps - ...
- ORACLE 11G新特性之一(增加带default的字段)
在11g之前,增加带default值的字段,实现原理如下: alter table t1 add c1 varchar2(20) default 'XX' not null; 假设t1表有4千万行数据 ...
- React 组件嵌套 父子关系
代码实例; <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" ...
- css实现下拉框导航条
html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- Go(二)函数
函数是一等公民 与其他主要编程语言的差异 1.可以有多个返回值 2.所有参数都是值传递 slice.map.channel会有传引用是错觉,如切片背后是数组,是一个数据结构,里面包含了指向对应数组的指 ...
- securityDemo依赖
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit ...
- vim常用的骚操作
1.设置~/.vimrc syntax on 支持语法高亮 set nu 显示行号set nonu 不显示行号 set ai 设置自动缩进 set ...
- 【Docker】docker常用命令
1.批量删除无tag镜像 docker images|grep none|awk '{print $3}'|xargs docker rmi 2.以特权模式运行容器 docker run --priv ...