2013-08-31 10 views
0

Mabby 그것은 어리석은 질문이지만, int 타입의 숫자를 char 타입의 숫자로 어떻게 캐스팅 할 수 있습니까? 이 작업을 수행하지 않습니다C에서 숫자 값을 잃지 않고 int digit을 char로 캐스팅하는 방법 #

표준 변환 OPS는 : 나는 CharIEnumerable을 반환하는 방법을 가지고 어떻게 든 ints의 컬렉션을 반환해야하기 때문에

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' 

나는이 필요합니다. 예를 들어

:

int[] {1, 2, 3} 

변환

char[] {'1', '2', '3'} 

에 그것은 C#에서 이러한 변환을 수행 할 수 있습니까?

답변

4

char로 전환하기 전에 int 값으로 48을 추가

char c = (char)(i + 48); 

또는 위해를 int[] ->char[] 변환 :

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

그것은 작동 ASCII table에서 '0' 문자 48을 가지고 있기 때문에 값. 그러나 int 값이 09 사이 인 경우에만 작동합니다.

+0

좋은 트릭'+ 1' –

+1

명료하게하기 위해'char c = (char) (i + '0');'? –

+0

@MatthewStrawbridge 멋진 코멘트. 그러면 코드가 훨씬 더 읽기 쉽습니다! – MarcinJuraszek

0
var yourInts = new int[]{1,2,3}; 
var result = yourInts.Select(x=>x.ToString()[0]).ToArray(); 
관련 문제