繁体   English   中英

C#Foreach循环 - 继续问题

[英]C# Foreach Loop - Continue Issue

我的C#Foreach循环中的continue语句有问题。

我希望它检查datagridview中是否有空单元格,如果是,则跳过打印值并继续检查下一个单元格。

非常感谢。

这是代码:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (cell.Size.IsEmpty)
        {
            continue;
        }
        MessageBox.Show(cell.Value.ToString());
    }
}

那么,您目前正在检查单元格的大小是否为零。 在网格中,列中的每个单元格具有相同的宽度,并且行中的每个单元格具有相同的高度(通常,无论如何)。

您希望根据单元格的进行检查。 例如:

if (cell.Value == null || cell.Value.Equals(""))
{
    continue;
}

对你感兴趣的“空”值的任何其他表示进行调整。如果有很多,你可能想为此编写一个特定的方法,并在检查中调用它:

if (IsEmptyValue(cell.Value))
{
    continue;
}

你不需要在这里使用continue关键字,你可以这样做:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (!cell.Size.IsEmpty) MessageBox.Show(cell.Value.ToString()); // note the ! operator
    }
}

此外,您正在检查单元格的大小是否为空。 这真的是你想要做的吗?

你得到了什么错误?

你不应该检查单元格的值是否为空而不是大小?

if(String.IsNullOrEmpty(cell.Value.ToString()))
    continue;

我想只阅读单元格[1]数据... olny

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells[1])
    {
       if (cell[1].Value == null || cell.Value.Equals(""))
{
    continue;
}

        MessageBox.Show(cell[1].Value.ToString());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM