我有一个DataGridView,当我选择多行时,我想要最后一个选定行的索引。换句话说,如何从选择的行中获得最大的索引。
例如,如果我选择row0,row1和row6,我希望输出为“6”。问候。
答案 0 :(得分:4)
if (dataGridView1.SelectedRows.Count > 0)
{
int lastIndex = dataGridView1.SelectedRows[dataGridView1.SelectedRows.Count - 1].Index;
}
答案 1 :(得分:3)
var x = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Max(row => row.Index);
与:
相同var y = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Last().Index;
答案 2 :(得分:1)
抱歉,我正在为自己添加答案。可能还有其他更快的方法,但这可行。
List<int> lst = new List<int>();
foreach (DataGridViewRow row in dg.SelectedRows)
lst.Add(row.Index);
lst.Sort();
int i = lst[lst.Count - 1];
这样做是将所有选定行的索引添加到List<>
然后进行排序,然后从排序的List<>
中提取最后一项。
注意:Bala R方法的问题在于,它取决于选择行的顺序(即所选指针所在的位置)。当所选行不在订单中时,它会失败。它给出了最后选择的行,不一定是选择行的最大索引。
谢谢大家!