C# 如何询问用户在textbox1中的数组中输入数字并在textbox2中显示
我有两个文本框,文本框1将有用户输入的数字,如果用户输入的数字超过4,将发生异常处理IndexOutfrance。但是,我得到一个错误,说: 无法从“字符串[]”转换为字符串 如何解决该错误以及如何输入数组数C# 如何询问用户在textbox1中的数组中输入数字并在textbox2中显示,c#,indexoutofrangeexception,C#,Indexoutofrangeexception,我有两个文本框,文本框1将有用户输入的数字,如果用户输入的数字超过4,将发生异常处理IndexOutfrance。但是,我得到一个错误,说: 无法从“字符串[]”转换为字符串 如何解决该错误以及如何输入数组数 int[] answer =int.Parse(textBox3.Text.Split(new Char[] { ',' })); for (int i = 0; i < 4; i++) { answer[i] = int.Parse(jawapanD17193.Text)
int[] answer =int.Parse(textBox3.Text.Split(new Char[] { ',' }));
for (int i = 0; i < 4; i++)
{
answer[i] = int.Parse(jawapanD17193.Text);
}
int[]answer=int.Parse(textBox3.Text.Split(新字符[]{',}));
对于(int i=0;i<4;i++)
{
答案[i]=int.Parse(jawapanD17193.Text);
}
问题:该方法需要一个字符串作为输入。并返回一个字符串[]
解决方案:您需要反向转换:
int[] answer = textBox3.Text.Split(new Char[] { ',' }).Select(x=> int.Parse(x)).ToArray();
通过这种方式,您将解析字符串[]
中的每个元素,最后将有一个int
数组
您不需要声明额外的字符数组:newchar[]{',}
。如果您阅读文档,您可以看到Split
需要一段时间
params char[]分隔符
作为参数。所以一个字符一个字符地处理就可以了:
int[] answer = textBox3.Text.Split(',').Select(x=> int.Parse(x)).ToArray();
编辑:
有时,空间可能会破坏转换。您可以使用Trim()
int.Parse
需要一个string
作为输入,但您正在将string.Split
的结果传递给它,它是一个string[]
使用循环或LINQSelect
将数组中的每个字符串传递到int.Parse
using System.Linq;
int[] answers = textBox3.Text
.Split(new Char[] { ',' })
.Select(str => int.Parse(str))
.ToArray();
@MongZhu,这是你提供的链接的副本吗?《op》面临着一个不同的问题,对吧?@zackraiyan我第一次读它时不够仔细。然后撤回了我的投票,但评论并没有自动删除。现在一切都回到了过去zero@MongZhu,没问题……我希望OP发现您的解决方案很有帮助……:)“如何输入数组数字?”你的确切意思是什么?@MongZhu我的意思是我想输入像1,2,3,4这样的数字列表。然后,数字数组中的数字。我不知道该怎么解释。我的意思是整数答案={1,2,3,4};看起来mong zhu比你领先了50秒:)是的。我们提出了相同的解决方案:)我收到一条错误消息说“输入字符串的格式不正确”。我输入了数字,例如:1,2,2,1@nikina也许你在里面有个空间。我编辑了我的帖子,以展示如何摆脱它。有一个look@nikina然后您可以尝试使用split重载来指定stringsplitoptions
using System.Linq;
int[] answers = textBox3.Text
.Split(new Char[] { ',' })
.Select(str => int.Parse(str))
.ToArray();