Получение значения ASCII символа в строке С#

Рассмотрим строку:

string str="A C# string";

Что было бы наиболее эффективным способом распечатать значение ASCII каждого символа в str с помощью С#.

Ответы

Ответ 1

Здесь альтернатива, так как вам не нравится приведение в int:

foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
    Console.Write(b.ToString());

Ответ 2

Просто выделите каждый символ в int:

for (int i = 0; i < str.length; i++)  
  Console.Write(((int)str[i]).ToString());

Ответ 3

Этот пример может помочь вам. используя простую кастинг, вы можете получить код за символом урду.

string str = "عثمان";
        char ch = ' ';
        int number = 0;
        for (int i = 0; i < str.Length; i++)
        {
            ch = str[i];
            number = (int)ch;
            Console.WriteLine(number);
        }

Ответ 4

Вот еще одна альтернатива. Конечно, это даст вам плохой результат, если вход char не ascii. Я не тестировал его, но думаю, что это будет довольно быстро:

[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);
}