繁体   English   中英

代码高尔夫:C#:将 ulong 转换为十六进制字符串

[英]Code Golf: C#: Convert ulong to Hex String

我尝试编写一个扩展方法来接收 ulong 并返回一个字符串,该字符串以十六进制格式表示提供的值,没有前导零。 我对自己的想法并不满意……使用标准 .NET 库有没有更好的方法来做到这一点?

public static string ToHexString(this ulong ouid)
{
    string temp = BitConverter.ToString(BitConverter.GetBytes(ouid).Reverse().ToArray()).Replace("-", "");

    while (temp.Substring(0, 1) == "0")
    {
        temp = temp.Substring(1);
    }

    return "0x" + temp;
}

解决方案实际上非常简单,您可以深入研究NumberFormatInfo类,而不是使用各种怪癖将数字格式化为十六进制。

您的问题的解决方案如下...

return string.Format("0x{0:X}", temp);

虽然我不会为此用途制作扩展方法。

您可以使用 string.format:

string.Format("0x{0:X4}",200);

检查C#中的字符串格式以获取有关格式化输出的更全面的“操作方法”。

在 C# 6 中,您可以使用字符串插值:

$"0x{variable:X}"

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM