हाल ही में, मैंने एक फ़ंक्शन के लिए प्रदर्शन में सुधार किया, जो इस पृष्ठ की मदद से एक स्ट्रिंग में अक्षरों की जांच करता है।
मुझे पता चला कि सॉल्यूशन के साथ सॉल्यूशंस Char.IsLetterOrDigit चेक के साथ 30 गुना धीमा हैं।
हमें यकीन नहीं था कि उन पत्रों या अंकों में शामिल हैं और हमें केवल लैटिन वर्णों की आवश्यकता थी, ताकि हमारे कार्य को Char.IsLetterOrDigit फ़ंक्शन के विघटित संस्करण के आधार पर लागू किया जाए।
यहाँ हमारे समाधान है:
internal static bool CheckAllowedChars(char uc)
{
switch (uc)
{
case '-':
case '.':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
return true;
default:
return false;
}
}
और उपयोग इस प्रकार है:
if( logicalId.All(c => CheckAllowedChars(c)))
{ // Do your stuff here.. }