从文本框中填充整数数组

本文关键字:整数 数组 填充 文本 | 更新日期: 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方法,我得到相同的结果

我需要知道这个错误的原因是什么??我该怎么补救呢?

从文本框中填充整数数组

这是由于从charint的隐式转换。

您正在获得字符的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]) };