C#,从0到9999获取每个特定的数字

时间:2011-11-28 03:07:36

标签: c# loops

一次。我可能会问一个简单的问题。好的,让我开始吧;

我希望每个数字从0到9999.每个具体的数字都是。为什么?好吧,我需要它用于案例编号。这是我到目前为止所拥有的;

            for (int i = 0; i < 9999; ++i)
            {
                if (line.Contains("if(intid == " + i + ")") || line.Contains("if intid == " + i) && !line.EndsWith(" then"))
                {
                    ErrorBox.Items.Add("ERROR: You're missing then near " + line + " TIME: " + DateTime.Now);
                }
            }

我上面的内容只会得到最后一个9999的数字,但是我想要每个特定的数字0,1,2,3,4,5等。“i”应该检索每个数字,最多9999。但是,“for”循环无法正常工作。

3 个答案:

答案 0 :(得分:0)

循环对我来说很好,我会说问题是你的if语句。试试这个:

if (line.Contains("if(intid == " + i + ")") || line.Contains("if intid == " + i) && !line.EndsWith(" then"))
{
    ErrorBox.Items.Add("ERROR: You're missing then near " + line + " TIME: " + DateTime.Now);
}
else
  ErrorBox.Items.Add("Not an error");

答案 1 :(得分:0)

你已经宣布为int;但是string.contains方法希望看到一个字符串。

所以,如果你在我的包含中,请改为使用i.ToString():

if (line.Contains("if(intid == " + i.ToString() + ")") || line.Contains("if intid == " + i.ToString()) && !line.EndsWith(" then"))

我不确定为什么它适用于9999而不适用于其他人。可能是||的逻辑和&amp;&amp; ?

安德鲁

答案 2 :(得分:0)

我认为您可能会遇到prescendence的问题。 &安培;&安培;在||之前评估。它就像1 + 2 * 3等于7。您需要添加()来正确评估表达式。 (b1 || b2)&amp;&amp; b3

修改

bool b1 = line.Contains("if(intid == " + i + ")");
bool b2 = line.Contains("if intid == " + i);
bool b3 = !line.EndsWith(" then");

所以写

if ((line.Contains("if(intid == " + i + ")") || line.Contains("if intid == " + i)) 
    && !line.EndsWith(" then"))