How to access DataGridView.SelectedRows in reverse order using foreach?
Which one is better foreach or for loop in C#?
Below code snippet giving rows in reverse order if I select mulitple rows.
public static DataTable GetSelectedData(DataGridView dgv)
{
DataTable selectedData = new DataTable();
foreach (DataGridViewColumn col in dgv.Columns)
{
selectedData.Columns.Add(col.Name, col.ValueType != null ? col.ValueType : typeof(string));
}
foreach (DataGridViewRow selectedRow in dgv.SelectedRows)
{
var dtRow = selectedData.NewRow();
for (int i1 = 0; i1 < dgv.Columns.Count; i1++)
dtRow[i1] = (selectedRow.Cells[i1].Value == null ? DBNull.Value : selectedRow.Cells[i1].Value);
selectedData.Rows.Add(dtRow);
}
return selectedData;
}
I need an efficient way to retrieve rows in order actually in the datagridview.