GUID является большим шоу случайного числа в ШЕСТНАДЦАТЕРИЧНОМ основании. Я хочу показать это число в более коротком формате, позволяет, говорит это на основе всех букв и чисел. Это - 36 оснований.
Позволяет говорят что: 2f1e4fc0-81fd-11da-9156-00036a0f876a
станет как 3jEl9x6eZi
.
Есть ли какой-либо 'готовый' алгоритм для этого в .NET?
это должно быть двунаправлено.
Править: использование Base64 является еще лучшим решением. Единственной проблемой является Base64, содержит /
символ, который не совместим для использования в URI.
Возможно, это то, что вам нужно: ShortGuid - более короткий и удобный для URL-адресов класс GUID в C #
Для такого преобразования нет ничего встроенного. Что-то похожее на встроенное использует кодировку base 64:
string base64 = Convert.ToBase64String(theGuid.ToByteArray())
Base64 - это то, что я использую, этот исправит проблему с помощью == и / и +
Я думаю, что ближе всего вы найдете Base36, однако он не будет работать с типом GIUD (только Int16, Int32 или Int64).
Это невозможно в том виде, как вы это представили. Вам пришлось бы потерять информацию:
>>> 16 ** len('2f1e4fc081fd11da915600036a0f876a')
340282366920938463463374607431768211456
>>> 36 ** len('3jEl9x6eZi')
3656158440062976
Чтобы охватить все возможные значения, вам потребуется гораздо больше цифр основания 36. Почему бы вместо этого не использовать основание 64? Результат был бы короче (а я предполагаю, что это и есть цель), и для этого есть стандартное решение в .NET.