C#Foreachループ-継続問題
-
03-07-2019 - |
質問
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;
}
" empty"の他の表現のためにこれを微調整します興味のある値。たくさんある場合は、このための特定のメソッドを記述し、チェックで呼び出すことができます。
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;
i cell [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());
}
}
所属していません StackOverflow