如何从datagridview中的特定列获取最大,第二大和第三大值

时间:2018-09-11 12:33:15

标签: c# asp.net

我需要获取由很多行组成的特定列(在我的情况下为Total)中的最大,第二大,第三大数目,我正在学习c#,请帮助我解决此问题

在这里我需要像这样的答案

我为276, II为240,III为180

我使用了这段代码,但是没有得到正确的输出

private void btnGet_Click(object sender, EventArgs e)
{
    string[] array = new string[dgConSheet.Rows.Count - 1 + 1];
    for (int i = 0; i <= dgConSheet.Rows.Count; i++)
    {
        array[i] = dgConSheet.Rows[i].Cells[6].Value.ToString();
    }

    Array.Sort(array); //sorting array
    Array.Reverse(array); // Reverse Sorting array value
    MessageBox.Show("Second Highest Value In Array " + array[1]);
}

这里的单元格[6]是列总数

1 个答案:

答案 0 :(得分:1)

您可以对集合进行排序并采用前三个元素:

string[] res = array.OrderByDescending().Take(3).ToArray();

当然,您应该确定排序的字符串是Intigers(如果不确定,请使用int.TryParse)。