将GUID转换为十进制基数中的字符串(也称为以十进制表示的巨大逗号分隔整数)

Ale*_*ang 3 string integer guid decimal

如何将System.GUID(在C#中)转换为十进制基数的字符串(又名为十进制的逗号分隔的巨大整数)?

像433,352,133,455,122,445,557,129,......

Guid.ToString将GUID转换为十六进制表示.

我正在使用C#和.Net 2.0.

Vic*_*rks 9

请注意,guid.ToByteAray()不会返回可以传递给BigInteger的数组.要使用该数组,需要重新排序和尾随零,以确保Biginteger将byteArray视为正数(请参阅MSDN文档).一个简单但性能较差的功能是:

private static string GuidToStringUsingStringAndParse(Guid value)
        {
            var guidBytes = string.Format("0{0:N}", value);
            var bigInteger = BigInteger.Parse(guidBytes, NumberStyles.HexNumber);
            return bigInteger.ToString("N0", CultureInfo.InvariantCulture);
        }
Run Code Online (Sandbox Code Playgroud)