C# 在c语言中如何在不丢失数字值的情况下将int数字转换为char#
Mabby这是一个愚蠢的问题,但我如何将int类型的数字转换为char类型的数字呢 标准转换OPs不能做到这一点:C# 在c语言中如何在不丢失数字值的情况下将int数字转换为char#,c#,type-conversion,C#,Type Conversion,Mabby这是一个愚蠢的问题,但我如何将int类型的数字转换为char类型的数字呢 标准转换OPs不能做到这一点: 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' 我之所以需要它,是因为我有一个返回Char的IEnumerab
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'
我之所以需要它,是因为我有一个返回Char
的IEnumerable
的方法,并且我需要以某种方式返回int的集合
例如:
int[] {1, 2, 3}
皈依
char[] {'1', '2', '3'}
是否可以在C#中进行这种转换?在转换为char
之前,将48
添加到int
值中:
char c = (char)(i + 48);
或者对于int[]
->char[]
转换:
var source = new int[] { 1, 2, 3 };
var results = source.Select(i => (char)(i + 48)).ToArray();
它可以工作,因为中的'0'
字符具有48
值。但是,只有当您的int
值介于0
和9
之间时,它才会起作用。在转换为char
之前,将48
添加到您的int
值中:
char c = (char)(i + 48);
或者对于int[]
->char[]
转换:
var source = new int[] { 1, 2, 3 };
var results = source.Select(i => (char)(i + 48)).ToArray();
它可以工作,因为中的'0'
字符具有48
值。但只有当您的int
值介于0
和9
之间时,如果您确实知道这些值在0中,它才会起作用。。9范围(包括两个范围),您可以通过使用按位或而不是加法来略微提高效率:
(char) ('0' | i);
如果您确实知道这些值位于0。。9范围(包括两个范围),您可以通过使用按位或而不是加法来略微提高效率:
(char) ('0' | i);
这应该起作用:
(字符)(i+0')
例如:
var i=8;
var c=(char)(i+'0')//给出“8”这应该可以:
(字符)(i+0')
例如:
var i=8;
var c=(char)(i+'0')//给出了“8”为了清晰起见,如何使用charc=(char)(i+'0')代码>?@MatthewStrawbridge评论不错。这将使代码更具可读性!为了清楚起见,charc=(char)(i+'0')代码>?@MatthewStrawbridge评论不错。这将使代码更具可读性!