如何将GUID的一部分转换为长?

时间:2014-03-31 19:30:01

标签: c# .net guid

说我有这个GUID:

57F67098-00A9-4F78-A729-4234F5AC512C

我只想将最后一部分(4234F5AC512C)转换为C#中的long。

3 个答案:

答案 0 :(得分:2)

尝试

long result = BitConverter.ToInt64(yourGuid.ToByteArray(), 8);

这将使用最后八个字节,而不仅仅是最后六个字节。如果只需要六个字节,可以附加& 0xFFFFFFFFFFFF

未测试。检查字节顺序和字节顺序是否符合要求。

答案 1 :(得分:1)

获取字符串的最后一部分,然后使用Convert.ToInt64以及接受转换的基数16的重载。

Guid g = new Guid("57F67098-00A9-4F78-A729-4234F5AC512C");
int pos = g.ToString().LastIndexOf('-');
string part = g.ToString().Substring(pos+1);
long result = Convert.ToInt64(part, 16);
Console.WriteLine(result.ToString());

答案 2 :(得分:1)

这是一个十六进制(基数为16)的值。您可以通过这种方式转换Convert.ToInt64("4234F5AC512C", 16)

http://msdn.microsoft.com/en-us/library/bb311038.aspx