Format de chaîne majuscule .NET GUID
J'ai besoin de formater mon Guid dans les pointillés format, toutes les lettres majuscules. Je sais à l'aide de myGuid.ToString("D")
ou String.Format("{0:D}", myGuid)
donne en pointillés format, mais avec une majuscule D
par opposition à un bas-de-casse d
ne veut pas m'en donner un en majuscule GUID de ce que je pensais. Est-il un moyen de le faire sans faire de bétise, ou dois-je tout simplement besoin d'appeler myGuid.ToString().ToUpper()
?
source d'informationauteur Daniel Schaffer
Vous devez vous connecter pour publier un commentaire.
Yep. Vous pouvez aller à l'effort de créer une IFormatProvider, mais il ne semble pas en vaut la peine ici.
Noter que RFC 4122qui définit l'UUID de la spécification, stipule que la production hexagonale de caractères doivent être en minuscules lors de la conversion de la structure d'une chaîne de caractères:
Cela peut expliquer pourquoi le Guid de la structure ne prend pas en charge la sortie directement comme une chaîne en majuscules.
Depuis le ToString format fournisseur paramètre est ignoré, la seule alternative (sans simplement la conversion de la chaîne en majuscules) serait de manipuler directement les octets, tout en prenant soin de préserver l'endianness. De convertir simplement des lettres majuscules (soit directement ou par l'intermédiaire d'une méthode d'extension) est probablement beaucoup plus simple.
Je ne pense pas que vous ayez d'autre choix que de faire de
myGuid.ToString().ToUpper()
. Bien que, vous pouvez toujours écrire une extension de la méthode, peut-être quelque chose commeToUpperString
mais je ne pense pas qu'il y est quelque chose de construit dans le système.En supposant que vous avez une classe qui détient votre Guid et vous souhaitez conserver l'tapé Guid, vous pourriez faire quelque chose comme ceci: