Код Гольф: C #: конвертировать ulong в Hex String - PullRequest
4 голосов
/ 23 февраля 2010

Я попытался написать метод расширения, чтобы взять 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;
}

Ответы [ 2 ]

17 голосов
/ 23 февраля 2010

Решение на самом деле очень простое, вместо того, чтобы использовать все виды причуд для форматирования числа в шестнадцатеричное число, вы можете найти класс NumberFormatInfo .

Решение вашей проблемы заключается в следующем ...

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

Хотя я бы не стал использовать метод расширения для этого использования.

4 голосов
/ 23 февраля 2010

Вы можете использовать string.format:

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

Проверьте Форматирование строки в C # для более подробных инструкций по форматированию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...