Back to "Guidformatsträng från en String-input-extension."

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#

Guidformatsträng från en String-input-extension.

Wednesday, 07 August 2024

Små poster FTW

En liten men potentiellt användbar lösning på ett problem jag hade.

Jag behövde det här för min RSS-feed-generator där jag ville generera en GUID för varje element i flödet som var upprepad men unik för varje item

Det visar sig att XxHash128 är ganska perfekt för detta eftersom den alltid ger en bit 128 ( eller 16 Byte) hashM SK4 Det betyder att den kan användas för att generera en GUID från en string-input utan att behöva något |

     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();
    }

Det här är en enkel förlängning metod som tar ett string-input och ger tillbaka en GUID. XxHash128 är från System.IO.Hashing Namespace.

Du kan förstås använda vilket som helst hashingalgoritm som ger ett 128 bit hash XxHash128 är bara ett bra val eftersom det' är snabbt och ger en bra fördelning av hashvärdena .

Du kan också ge tillbaka en new Guid(<string>) från detta till att få en riktig GUID som kan användas i databaser eller andra GUID-specifika användningsfall

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.