我在c#中有一个char:

char foo = '2';

现在我想把2变成一个整型。我发现皈依。ToInt32返回该字符的实际十进制值,而不是数字2。以下是可行的方法:

int bar = Convert.ToInt32(new string(foo, 1));

int。解析也只适用于字符串。

c#中没有本地函数可以在不使其成为字符串的情况下从char转换为int吗?我知道这是微不足道的,但这似乎很奇怪,没有本地直接进行转换。


当前回答

有一个非常简单的方法可以将字符0-9转换为整数: c#像对待整数一样对待char值。

Char c = '7';(ascii码55)int x = c - 48;(result = integer of 7)

其他回答

首先将字符转换为字符串,然后转换为整数。

var character = '1';
var integerValue = int.Parse(character.ToString());

使用Uri.FromHex。 为了避免异常Uri.IsHexDigit。

char testChar = 'e';
int result = Uri.IsHexDigit(testChar) 
               ? Uri.FromHex(testChar)
               : -1;

这招对我很管用:

int bar = int.Parse("" + foo);

有一个非常简单的方法可以将字符0-9转换为整数: c#像对待整数一样对待char值。

Char c = '7';(ascii码55)int x = c - 48;(result = integer of 7)

这将把它转换为int型:

char foo = '2';
int bar = foo - '0';

这是可行的,因为每个字符在内部都由一个数字表示。字符“0”到“9”由连续的数字表示,因此找出字符“0”和“2”之间的差值,结果是数字2。