CLR оптимизирует мои переменные forloop - PullRequest
3 голосов
/ 13 августа 2011

Я пытаюсь запустить базовый цикл, который найдет определенное значение в сетке просмотра данных. Я не могу понять, что происходит с кодом, так как цикл for завершается до оценки его основного состояния.

private void SearchDataViewGrid(string FileName)
    {
        //finds the selected entry in the DVG based on the image
            for (int i = 0; i == dataPartsList.Rows.Count ; i++)
            {
                if(FileName == dataPartsList.Rows[i].Cells[3].Value.ToString())
                {
                dataPartsList.Rows[i].Selected = true;
                }
            }
        }

Программа не падает, но я получаю сообщение об ошибке в переменных 'i', заявляющее, что она была оптимизирована. Попробовал несколько простых исправлений, которые я нашел в Интернете, но, похоже, ничего не сохранило.

Я проверил, что строка, которую я передаю, является правильной, и мой «фиктивный» DVG возвращает значение 14 для числа содержащихся строк. Даже если я удаляю оператор if из цикла for, я все равно получаю ту же ошибку.

Ответы [ 2 ]

7 голосов
/ 13 августа 2011

Условие cond в середине for(init; cond; update) - это не условие до , а условие , в то время как .

Так что вам нужно изменить

 for (int i = 0; i < dataPartsList.Rows.Count ; i++)
2 голосов
/ 13 августа 2011

Проблема в том, что ваш условный код i == dataPartsList.Rows.Count, поэтому тело будет выполняться только тогда, когда эти два значения равны. Это гарантирует, что ваш цикл никогда не будет выполнен. Вы должны изменить свое условие на < вместо ==

for (int i = 0; i < dataPartsList.Rows.Count ; i++) {
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...