Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何询问用户在textbox1中的数组中输入数字并在textbox2中显示_C#_Indexoutofrangeexception - Fatal编程技术网

C# 如何询问用户在textbox1中的数组中输入数字并在textbox2中显示

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)

我有两个文本框,文本框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(新字符[]{',}));
对于(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[]

使用循环或LINQ
Select
将数组中的每个字符串传递到
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();