Back to "Guid formaat string van een string input extensie."

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

C#

Guid formaat string van een string input extensie.

Wednesday, 07 August 2024

Kleine berichten FTW

Kleine maar potentieel nuttige oplossing voor een probleem dat ik had. Namelijk, hoe een GUID te genereren van een string input waar de Guid is altijd geldig maar uniek voor een bepaalde invoer string.

Ik had dit nodig voor mijnRSS-feedgeneratorwaar ik een GUID wilde genereren voor elk item in de feed dat herhaalbaar maar uniek was voor elk item.

Het blijkt dat deXxHash128is hier een beetje perfect voor omdat het altijd een 128 bit (of 16 Byte) hash geeft. Dit betekent dat het gebruikt kan worden om een GUID te genereren uit een string input zonder 'Array'.

     public  static string ToGuid(this string  name)
    {
        var buf = Encoding.UTF8.GetBytes(name);
        var guid = XxHash128.Hash(buf);
        var guidS =  string.Format("{0:X2}{1:X2}{2:X2}{3:X2}-{4:X2}{5:X2}-{6:X2}{7:X2}-{8:X2}{9:X2}-{10:X2}{11:X2}{12:X2}{13:X2}{14:X2}{15:X2}", 
            guid[0], guid[1], guid[2], guid[3], guid[4], guid[5], guid[6], guid[7], guid[8], guid[9], guid[10], guid[11], guid[12], guid[13], guid[14], guid[15]);
        return guidS.ToLowerInvariant();
    }

Dit is een eenvoudige extensie methode die een string input neemt en een GUID teruggeeft.XxHash128is van deSystem.IO.Hashingnamespace.

U kunt natuurlijk gebruik maken van elk hashing algoritme dat geeft een 128 bit hash.XxHash128is gewoon een goede keuze als het is snel en geeft een goede verdeling van hash waarden.

U kunt ook eennew Guid(<string>)van dit om een werkelijke Guid die kan worden gebruikt in een database of andere GUID specifieke gebruik gevallen te krijgen.

logo

©2024 Scott Galloway