Получение текста только из определенного столбца DataGridView
-
03-07-2019 - |
Вопрос
У меня есть DataGridView, который заполнен 4 столбцами и несколькими строками данных. Я хочу перебрать DataGridView и получить значение ячейки из только определенного столбца , поскольку мне нужны эти данные для передачи в метод.
Вот мой код:
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
GetQuestions(cell.Value.ToString());
}
}
Похоже, что это проходит через все ячейки, однако мне нужно иметь возможность указать что-то вроде:
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
foreach (DataGridViewCell cell in row.Cells[2])//Note specified column index
{
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
GetQuestions(cell.Value.ToString());
}
}
Решение
Разве вы не хотите просто удалить внутренний цикл foreach
? Или я что-то пропустил?
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
DataGridViewCell cell = row.Cells[2]; //Note specified column index
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
GetQuestions(cell.Value.ToString());
}
Другие советы
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
DataGridViewCell cell = row.Cells["foo"];//Note specified column NAME
{
if (cell != null && (cell.Value != null || !cell.Value.Equals("")))
{
GetQuestions(cell.Value.ToString());
}
}
}
Возможно, вы могли бы проверить ColumnIndex? Тем не менее все равно будет проходить через все ячейки.
if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex != 2)
{
continue;
}
Не связан с StackOverflow