如何在不丢失c#中的数字值的情况下将int数字转换为char

Ale*_*voi 0 c# type-conversion

Mabby这是一个愚蠢的问题,但我如何将int类型的数字转换为char类型的数字?

标准转换OP不会这样做:

int x = 5;
char myChar = Convert.ToChar(5); // myChar is now a unicode character
char secondChar = (char)x; // again I get a unicode character, not a digit '5'
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为我有一个返回IEnumerable的方法,Char我需要以ints某种方式返回一个集合.

例如:

int[] {1, 2, 3}  
Run Code Online (Sandbox Code Playgroud)

转换成

char[] {'1', '2', '3'}  
Run Code Online (Sandbox Code Playgroud)

是否可以在C#中进行这样的转换?

Mar*_*zek 5

在转换为:之前添加48到您的intchar:

char c = (char)(i + 48);
Run Code Online (Sandbox Code Playgroud)

或者int[]- > char[]转换:

var source = new int[] { 1, 2, 3 };
var results = source.Select(i => (char)(i + 48)).ToArray();
Run Code Online (Sandbox Code Playgroud)

它的工作原理,因为'0'字符的ASCII表中48值.但只有当你的int价值观在0和之间时它才有用9.

  • 为了清楚起见,`char c =(char)(i +'0');`怎么样? (2认同)