Baru-baru ini, saya membuat peningkatan kinerja untuk fungsi yang memeriksa huruf dalam sebuah string dengan bantuan halaman ini.
Saya menemukan bahwa Solusi dengan regex 30 kali lebih lambat daripada yang dengan cek Char.IsLetterOrDigit.
Kami tidak yakin bahwa Huruf atau Angka itu termasuk dan kami hanya membutuhkan karakter Latin sehingga menerapkan fungsi kami berdasarkan versi yang terdekompilasi dari fungsi Char.IsLetterOrDigit.
Inilah solusi kami:
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;
}
}
Dan penggunaannya seperti ini:
if( logicalId.All(c => CheckAllowedChars(c)))
{ // Do your stuff here.. }