2011-11-28 3 views
0

еще раз. Я, вероятно, задаю простой вопрос. Хорошо, позвольте мне начать;C#, Получение каждого конкретного номера (ов) от 0 до 9999

Я хочу получить каждое число от 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. Но цикл «для» работает неправильно.

ответ

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"); 
0

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

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

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

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

Эндрю

+0

Ничего себе, по-видимому, это не увидеть его в виде строки. Спасибо, это сработало. Теперь он получит каждый номер. Только одна проблема заключается в том, что он не выполняет line.Contains ("if (intid ==" + i.ToString() + ")" правильно. –

0

Я думаю, что вы могли бы иметь проблемы с prescendence. & & оценивается до ||. Это как 1 + 2 * 3 равно 7. Вам нужно добавить(), чтобы правильно оценить ваше выражение. (b1 || b2) & & b3

EDIT

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")) 
Смежные вопросы