সম্প্রতি, আমি এমন কোনও ক্রিয়াকলাপের জন্য পারফরম্যান্স উন্নতি করেছি যা এই পৃষ্ঠার সাহায্যে একটি স্ট্রিংয়ে অক্ষরগুলি পরীক্ষা করে।
আমি বুঝতে পেরেছি যে রেজেক্স সহ সমাধানগুলি চর.আইএসলেটরঅরডিজিট চেক সহকারীর চেয়ে 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.. }