Guidformatsträng från en String-input-extension.
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