C# Foreach 循环 - 继续问题

发布于 2024-07-18 20:02:21 字数 436 浏览 12 评论 0原文

我的 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());
    }
}

I have a problem with a continue statement in my C# Foreach loop.

I want it to check if there is a blank cell in the datagridview, and if so, then skip printing the value out and carry on to check the next cell.

Help appreciated greatly.

Here is the code:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

阳光的暖冬 2024-07-25 20:02:21

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

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

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

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

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

Well, you're currently checking whether the cell's size is zero. In a grid, every cell in a column has the same width and every cell in a row has the same height (typically, anyway).

You want to be checking based on the value of the cell. For example:

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

Tweak this for any other representations of "empty" values that you're interested in. If there are lots, you might want to write a specific method for this, and call it in the check:

if (IsEmptyValue(cell.Value))
{
    continue;
}
白鸥掠海 2024-07-25 20:02:21

您不需要在这里使用 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
    }
}

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

您遇到什么错误?

You don't need to use the continue keyword here, you could just do this:

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
    }
}

Also, you're checking whether the size of the cell is empty. Is this really what you want to do?

What errors are you getting?

九局 2024-07-25 20:02:21

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

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

Shouldn't you be checking if the cell's value is empty not the size?

if(String.IsNullOrEmpty(cell.Value.ToString()))
    continue;
枫林﹌晚霞¤ 2024-07-25 20:02:21

我只想读取单元格[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());
    }
}

i want to read only cell[1] data...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());
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文