如何从DataGridView中选择的行中获取最后一个选定行的索引

时间:2011-05-25 11:57:50

标签: c# winforms datagridview .net-2.0

我有一个DataGridView,当我选择多行时,我想要最后一个选定行的索引。换句话说,如何从选择的行中获得最大的索引。

例如,如果我选择row0,row1和row6,我希望输出为“6”。

问候。

3 个答案:

答案 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方法的问题在于,它取决于选择行的顺序(即所选指针所在的位置)。当所选行不在订单中时,它会失败。它给出了最后选择的行,不一定是选择行的最大索引。

谢谢大家!