for (int i = 0; i < dataGridView1.Rows.Count; i++) 改成foreach
时间: 2023-06-21 20:17:40 浏览: 129
将 `for` 循环改为 `foreach` 循环,需要使用以下代码:
```csharp
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Selected == true)
{
if (isadmin == "1")
{
// 执行相关操作
}
}
}
```
`foreach` 循环可以更简洁地遍历集合中的元素,避免了使用索引变量 `i`,并且可以直接使用集合中的元素,而不需要通过索引访问。
相关问题
dataInfo = new DeviceManage.设备报废(); for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Selected == true) { if (isadmin == "1") { if (dataGridView1.Rows[i].Cells[0].Value == null) { dataInfo.sp_no = bfdh.Text = dataGridView1.Rows[i].Cells[2].Value.ToString(); dataInfo.login_no = yhbh.Text = dataGridView1.Rows[i].Cells[3].Value.ToString(); dataInfo.dev_no = sbbh.Text = dataGridView1.Rows[i].Cells[4].Value.ToString(); dataInfo.sp_why = bfyy.Text = dataGridView1.Rows[i].Cells[5].Value.ToString(); dataInfo.remark = bz.Text = dataGridView1.Rows[i].Cells[6].Value.ToString(); } 改成foreach
将上面的代码改为foreach循环,可以按照如下方式实现:
```
dataInfo = new DeviceManage.设备报废();
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
if (isadmin == "1")
{
if (row.Cells[0].Value == null)
{
dataInfo.sp_no = bfdh.Text = row.Cells[2].Value.ToString();
dataInfo.login_no = yhbh.Text = row.Cells[3].Value.ToString();
dataInfo.dev_no = sbbh.Text = row.Cells[4].Value.ToString();
dataInfo.sp_why = bfyy.Text = row.Cells[5].Value.ToString();
dataInfo.remark = bz.Text = row.Cells[6].Value.ToString();
}
}
}
```
这样就可以遍历选中的DataGridView行,将每一行的数据存入对应的变量中。
for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Selected == true) { dataInfo.ft_no = bxdh.Text = dataGridView1.Rows[i].Cells[0].Value.ToString(); dataInfo.login_no = yhbh.Text = dataGridView1.Rows[i].Cells[1].Value.ToString(); dataInfo.dev_no = xbbh.Text = dataGridView1.Rows[i].Cells[2].Value.ToString(); dataInfo.ftwhy = gzyy.Text = dataGridView1.Rows[i].Cells[3].Value.ToString(); dataInfo.ftstatus = gzztms.Text = dataGridView1.Rows[i].Cells[4].Value.ToString(); dataInfo.remark = bz.Text = dataGridView1.Rows[i].Cells[5].Value.ToString(); } }改写dpreach
可以这样改写:
```
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
dataInfo = new DeviceManage.故障管理();
dataInfo.ft_no = bxdh.Text = row.Cells[0].Value.ToString();
dataInfo.login_no = yhbh.Text = row.Cells[1].Value.ToString();
dataInfo.dev_no = xbbh.Text = row.Cells[2].Value.ToString();
dataInfo.ftwhy = gzyy.Text = row.Cells[3].Value.ToString();
dataInfo.ftstatus = gzztms.Text = row.Cells[4].Value.ToString();
dataInfo.remark = bz.Text = row.Cells[5].Value.ToString();
}
```
这样,遍历选中行的过程中,每次都会新创建一个 `dataInfo` 对象,并将选中行的对应值赋值给它。同时,使用 `foreach` 遍历选中行的集合,可以避免遍历所有行,提高效率。
阅读全文