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

问题描述

| 我有一个DataGridView,当我选择多行时,我想要最后选择的行的索引。换句话说,如何从选定的行中获得最大的索引。 例如,如果我选择row0,row1和row6,则希望输出为\“ 6 \”。 问候。     

解决方法

if (dataGridView1.SelectedRows.Count > 0)
{
    int lastIndex = dataGridView1.SelectedRows[dataGridView1.SelectedRows.Count - 1].Index;
}
    ,
var x = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Max(row => row.Index);
与以下内容相同:
var y = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Last().Index;
    ,抱歉,我正在为自己添加答案。可能还有其他更快的方法,但这可行。
            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 \'s方法的问题在于,它取决于行的选择顺序(即所选指针所在的位置)。当选定的行不在顺序中时,它将失败。它提供了最后选择的行,不一定提供所选行中的最大索引。 感谢大家!