Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从datagridview中的特定列中获取最大值、第二大值和第三大值_C#_Asp.net - Fatal编程技术网

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

C# 如何从datagridview中的特定列中获取最大值、第二大值和第三大值,c#,asp.net,C#,Asp.net,我需要得到一个最大的,第二大的,第三大的列,在我的案例列名为总计,其中包括很多行,我只是学习c,请帮助我解决这个问题 在这里,我需要像这样的答案 我是276, II as 240,III as 180 我使用了这段代码,但没有得到正确的输出 private void btnGet_Click(object sender, EventArgs e) { string[] array = new string[dgConSheet.Rows.Count - 1 + 1]; for (

我需要得到一个最大的,第二大的,第三大的列,在我的案例列名为总计,其中包括很多行,我只是学习c,请帮助我解决这个问题

在这里,我需要像这样的答案 我是276, II as 240,III as 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]是列总数

您可以对集合进行排序并获取前3个元素:

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

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

如果您要对数字进行排序,则不应使用字符串。当字符串没有得到正确的输出时,它会返回什么?使用源数据,而不是GridView单元格值。先生,感谢您的回复转换字符串可以提供意外的结果。20<100,但20>100正如ca>Baaop所述,不需要转换为int,因为总计列已经是int。您的答案可以简化为: