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

<!--category-- C# -->
<datetime class="hidden">2024-08-07T17:17</datetime>

## 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](/blog/addinganrssfilewithaspnetcore) 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 |

```csharp
     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