# वाक्यांश इनपुट विस्तार से गुरूड फ़ॉर्मेट.

<!--category-- C# -->
<datetime class="hidden">2024- 08- 0. 7टी17: 17</datetime>

## छोटे पोस्ट FTW

एक समस्या के लिए मुझे बहुत कम लेकिन उपयोगी समाधान मिल रहा था । नाम, वाक्यांश इनपुट से जीयूआईD कैसे तैयार करें जहाँ जीआईडी हमेशा वैध होता है परंतु किसी भी इनपुट वाक्यांश के लिए विशिष्ट होता है.

मैं अपने लिए इस की जरूरत है [RSS फीड जेनरेटर](/blog/addinganrssfilewithaspnetcore) जहाँ मैं भोजन में प्रत्येक वस्तु के लिए जीयूआई अनुप्रयोग बनाना चाहता था जो दोहरायी जा सकती थी लेकिन प्रत्येक वस्तु के लिए अद्वितीय था.

यह पता चला है कि `XxHash128` इसके लिए कृपालुता है क्योंकि यह हमेशा एक 128 बिट (या 16 बाइट) Oh देता है. इसका अर्थ है कि इसे बिना 'एरे' के वाक्यांश इनपुट से एक जीयूआई डीडी तैयार करने के लिए इस्तेमाल किया जा सकता है। बकवास।

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

यह एक सादा एक्सटेंशन विधि है जो स्ट्रिंग इनपुट लेता है तथा जीयूआई डी. वह `XxHash128` से है `System.IO.Hashing` नेमस्पेस.

आप निश्चित रूप से किसी भी अनंत एल्गोरिथ्म का उपयोग कर सकते हैं जो एक 128 बिट हैh देता है. वह `XxHash128` सिर्फ एक अच्छा विकल्प है जैसे यह तेजी से है और हैश मूल्यों का एक अच्छा वितरण देता है.

आप भी एक वापसी कर सकते हैं `new Guid(<string>)` इस से वास्तविक Gidid प्राप्त करने के लिए जिसे एक डेटाबेस या अन्य जीयूआई विशिष्ट मामलों में प्रयोग किया जा सकता है.