C#,获取0到9999之间的每个特定数字.再次

本文关键字:再次 数字 之间 获取 9999 | 更新日期: 2023-09-27 18:16:08

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

我想得到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等。"我"应该检索每个数字,直到9999。但是,"for"循环不能正常工作。

C#,获取0到9999之间的每个特定数字.再次

循环对我来说很好,我认为问题在于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");

您已经将i声明为int;但是,string.contents方法希望看到一个字符串。

所以,在你的包含中有i的地方,把这个i改为ToString((:

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

我不知道为什么它对9999有效,但对其他人无效。可能是||和&amp?

Andrew

我认为您可能对先见之明有问题&amp;在||之前求值。这就像1+2*3等于7。您需要添加((才能正确评估表达式。(b1||b2(&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"))