C #, Получение каждого конкретного числа (й) от 0 до 9999 - PullRequest
0 голосов
/ 28 ноября 2011

еще раз. Я, наверное, задаю простой вопрос. Хорошо, позвольте мне начать;

Я хочу получить каждое число от 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 голосов
/ 28 ноября 2011

Вы получили, что я объявлен как int; однако метод string.contains ожидает увидеть строку.

Итак, где у вас есть i в вашем содержании, вместо этого сделайте i.ToString ():

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

Я не уверен, почему это будет работать для 9999, но не для других. Возможно, логика || и &&?

Andrew

0 голосов
/ 28 ноября 2011

Я думаю, у вас могут быть проблемы с prescendence .&& оценивается до ||.Это как 1 + 2 * 3 равно 7.Вы должны добавить (), чтобы правильно оценить свое выражение.(b1 || b2) && 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"))
0 голосов
/ 28 ноября 2011

Цикл выглядит нормально для меня, я бы сказал, что проблема в вашем утверждении 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...