首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#中如何在不松动数字值的情况下将整数转换为字符

问在c#中如何在不松动数字值的情况下将整数转换为字符
EN

Stack Overflow用户
提问于 2013-08-31 19:39:51
回答 3查看 3.9K关注 0票数 1

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

标准转换操作并不是这样做的:

代码语言:javascript
复制
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'

我需要这样做,因为我有一个返回IEnumerable of Char的方法,并且需要以某种方式返回一个ints集合。

例如:

代码语言:javascript
复制
int[] {1, 2, 3}  

转换成

代码语言:javascript
复制
char[] {'1', '2', '3'}  

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-31 19:43:13

将48添加到您的int值,然后再转换为char

代码语言:javascript
复制
char c = (char)(i + 48);

或用于int[] -> char[]转换:

代码语言:javascript
复制
var source = new int[] { 1, 2, 3 };
var results = source.Select(i => (char)(i + 48)).ToArray();

它可以工作,因为'0'字符在ASCII表中具有48值。但是,只有在int值介于0和9之间时,它才能工作。

票数 9
EN

Stack Overflow用户

发布于 2013-08-31 19:41:43

代码语言:javascript
复制
var yourInts = new int[]{1,2,3};
var result = yourInts.Select(x=>x.ToString()[0]).ToArray();
票数 0
EN

Stack Overflow用户

发布于 2021-06-03 23:39:01

这应该有效:(char) (i + '0')

例如: var i= 8;var c= (char) (i +‘0’);//给予'8‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18552083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档