C# 如何从datagridview中的特定列中获取最大值、第二大值和第三大值
我需要得到一个最大的,第二大的,第三大的列,在我的案例列名为总计,其中包括很多行,我只是学习c,请帮助我解决这个问题 在这里,我需要像这样的答案 我是276, II as 240,III as 180 我使用了这段代码,但没有得到正确的输出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 (
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。您的答案可以简化为: