从文本框中填充整数数组
本文关键字:整数 数组 填充 文本 | 更新日期: 2023-09-27 18:15:33
我在winforms应用程序中有一个文本框,当我记录这个值时,例如1258
int[] arr = new int[] { textBox1.Text[0], textBox1.Text[1], textBox1.Text[2], textBox1.Text[3] };
arr
的含量为:49、50、53、56而不是1、2、5、8 !!
即使我使用StringTrim方法,我得到相同的结果
我需要知道这个错误的原因是什么??我该怎么补救呢?
这是由于从char
到int
的隐式转换。
您正在获得字符的ASCII
值。试试这个:
var arr = textBox1.Text.Select(x => int.Parse(x.ToString())).ToArray();
这是因为你得到的是ASCII码而不是整数值。
在ASCII中字符'0' = 48 = 30h
然后你可以用下面的方法得到整数值(例如):textBox1。文字[0]- 48
请注意,它只适用于1位数的值,对于更多的数字,您必须解析文本
将ASCII值插入到数组中。所以它插入的不是0而是48,不是1而是49,以此类推。
如果你想从文本中得到实数,你需要用int.Parse("1")
解析它。
所以对于你的数组,这应该是有效的,即使它不是最好的解决方案。
int[] arr = new int[] { int.Parse(textBox1.Text[0]), int.Parse(textBox1.Text[1]), int.Parse(textBox1.Text[2]), int.Parse(textBox1.Text[3]) };