0

您好,我有一个 inputtextfield,如果我想输入例如 100 的数字以使脚本循环 100 次,但我总是遇到错误。当把一个数字放在它运行正常的地方时,我试图用文本框中的一个数字来输入它。

for (var i = 0; i < (textBox2.Text); i++)
            {
code in here
}

这是错误:错误 1 ​​运算符“<”不能应用于“int”和“字符串”类型的操作数

我究竟做错了什么?有人能帮我吗??

4

8 回答 8

1

你给textBox2.Text虽然它会有数字,但它有类型string,你需要integer

int result = int.Parse(textBox2.Text);      

for (var i = 0; i <result  ; i++)
{
    //Your code
}
于 2012-12-15T13:21:57.390 回答
1

Check如果文本可以解析为 int first and then proceed。如果是,以下int.TryParse()方法将返回truetextBox2.Text.Trim()int

int limit;

if( int.TryParse(textBox2.Text.Trim(), out limit))
{
    for (var i = 0; i < limit ; i++)
    {
      //code in here
    }
}
于 2012-12-15T13:26:13.930 回答
0

您需要使用该Int32.Parse()方法将文本框中的文本转换为整数。Text 字段只是一个字符串,编译器无法弄清楚您要做什么。

于 2012-12-15T13:21:45.730 回答
0

in 的值textBox2.Text是 string 类型,您需要将其转换为 int。

这是由 cint() 函数完成的

cint(textBox2.Text)

或 Parse() 方法

Int32.Parse(textBox2.Text);

如果您确定包含“123”而不是“absjsdfd”之类的输入字符串有效,则上述两种方法将起作用。

for (var i = 0; i < Int32.Parse(textBox2.Text); i++)
{
//your code in here
}

为了避免在文本框中输入无效输入时引发异常,请使用更强大的函数Integer.TryParse()

   int limit;
   bool valid = int.TryParse(textbox2.Text, out limit);
   if(valid)
     for (var i = 0; i < limit; i++)
     {
       //your code in here
     }
于 2012-12-15T13:22:10.830 回答
0

错误消息很清楚,您正在尝试将整数与字符串值进行比较。那显然行不通。您首先需要将文本框中的值转换为整数类型,然后才能将条件应用于 for 循环。

于 2012-12-15T13:23:19.590 回答
0

采用Int.Parse(txtFirst.Text);

有一件事,您似乎是初学者,我希望您在编码中遵循命名约定,例如txt添加到文本框名称之前,lbl用于标签,您可以在学习材料中找到更多信息......

于 2012-12-15T13:23:55.880 回答
0

您需要解析textBox2.Text String以获得int. 例如:

int x = int.Parse(textBox2.Text);
for (var i = 0; i < x; i++)
于 2012-12-15T13:24:18.363 回答
0

正如其他人所提到的, textbox2.text 是一个字符串,必须转换为 #n 整数

for (var i = 0; i < int.Parse(textBox2.Text); i++)
        {
//code in here
}

但是,我建议您使用更合适的控件,例如数字 Up Down:

for (var i = 0; i < Convert.ToInt32(numericUpDown1.Value); i++)
        {
code in here
}
于 2012-12-15T13:29:12.417 回答