将整数赋值给字符数组c#

将整数赋值给字符数组c#,c#,arrays,visual-studio,char,C#,Arrays,Visual Studio,Char,我尝试在字符数组中插入整数,但失败了,因为某种原因,当我赋值时(例如charc[0]=2),我得到了这个奇怪的值“50”,当我尝试调试时,我注意到数组中每个单元格实际上有2个值,例如当我赋值charc[0]时=2它向我显示了两个不同的值:“50,'2'”。 因此,当我尝试访问每个单元格中的值时,我得到的是50(我读取的是ASCII值),而不是理想的2。 “line”变量包含以下格式的字符串:“23x11x5”(3个单独的数字,中间有一个“x”)。代码如下: StreamReader sr =

我尝试在字符数组中插入整数,但失败了,因为某种原因,当我赋值时(例如
charc[0]=2
),我得到了这个奇怪的值“50”,当我尝试调试时,我注意到数组中每个单元格实际上有2个值,例如当我赋值
charc[0]时=2
它向我显示了两个不同的值:“50,'2'”。 因此,当我尝试访问每个单元格中的值时,我得到的是50(我读取的是ASCII值),而不是理想的2。 “line”变量包含以下格式的字符串:“
23x11x5
”(3个单独的数字,中间有一个“x”)。代码如下:

 StreamReader sr = new StreamReader("TextFilePathHere.txt");
           line = sr.ReadLine();
           char[] charc = new char[line.Length];
                charc = line.ToCharArray();

执行
charc[0]=2
时,是否出现错误
无法将类型“int”隐式转换为“char”
?不能将整数指定给字符类型字段

尝试像
charc[0]='2'
charc[0]=2.ToString()[0]那样分配它

此外,“23x11x5”的第一个字符是“2”,因此该行不会更改。你还说“尝试插入整数”。因此,如果要插入字符,可以调用

由于数组的大小是固定的,请尝试使用可以动态添加字符的列表

List<char> list = line.ToCharArray().ToList();
list.Insert(0, '9');
Console.WriteLine(new string(list.ToArray()));
List List=line.ToCharArray().ToList();
列表。插入(0,'9');
WriteLine(新字符串(list.ToArray());

“2”对应于ASCII值
50
<代码>我得到一个奇怪的值“50”
这是一个字符代码。请尝试
charc[0]='2'
charc[0]=2.ToString()[0]
或更好的
charc[0]=2+48
方法,其中48是每个十进制数字的常量,因为它是字符表中
0
的索引。反向转换
int number=int.Parse(charc[0].ToString())
或干脆
int number=charc[0]-48
。我使用函数
tocharray()
来分配ASCII值和所需值,你基本上是说我必须单独分配每个整数,而不使用所述函数?要解析
“23x11x5”
使用
int[]number=line.Split('x')。选择(int.parse).ToArray()
,你将得到一个包含3个数字的数组。反向转换
string text=string.Join(“x”,numbers.Select(x=>x.ToString())
List<char> list = line.ToCharArray().ToList();
list.Insert(0, '9');
Console.WriteLine(new string(list.ToArray()));