Considérons la chaîne:
string str="A C# string";
Quel serait le moyen le plus efficace d’imprimer la valeur ASCII de chaque caractère de str avec C #.
Voici une alternative puisque vous n'aimez pas le casting de int:
foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
Console.Write(b.ToString());
Il suffit de lancer chaque personnage dans un int:
for (int i = 0; i < str.length; i++)
Console.Write(((int)str[i]).ToString());
Cet exemple pourrait vous aider. en utilisant un simple casting, vous pouvez obtenir du code derrière le caractère ourdou.
string str = "عثمان";
char ch = ' ';
int number = 0;
for (int i = 0; i < str.Length; i++)
{
ch = str[i];
number = (int)ch;
Console.WriteLine(number);
}
Voici une autre alternative. Cela vous donnera bien sûr un mauvais résultat si le caractère d’entrée n’est pas ascii. Je ne l'ai pas encore testé, mais je pense ce serait assez rapide:
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int GetAsciiVal(string s, int index) {
return GetAsciiVal(s[index]);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int GetAsciiVal(char c) {
return unchecked(c & 0xFF);
}