我正在尝试运行一个在数据视图网格中找到特定值的基本循环。我无法弄清楚代码是什么,因为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。即使我删除了for循环中的'if'语句,我仍然会得到同样的错误。
答案 0 :(得分:7)
cond
中间的条件for(init; cond; update)
不是直到条件,而是而条件。
所以你需要把它改成
for (int i = 0; i < dataPartsList.Rows.Count ; i++)
答案 1 :(得分:2)
问题是你的条件是i == dataPartsList.Rows.Count
所以只有当这两个值相等时才会执行。这可以保证您的循环永远不会执行。您需要将条件更改为<
而不是==
for (int i = 0; i < dataPartsList.Rows.Count ; i++) {
...
}