【发布时间】:2011-10-15 10:30:12
【问题描述】:
我有一个类似于
的数据表Rank Year Value
1 1990 1234556.5676
2 2000 12313.1212
3 2010 131242.1234
我在以下线程的帮助下编写了以下代码:How to select min and max values of a column in a datatable?
double dMaxValue = 0;
foreach (DataRow dr in dsView.Tables[0].Rows)
{
double dValue = dr.Field<double>("Value");
dMaxValue = Math.Max(dMaxValue, dValue);
}
这会引发错误“指定的强制转换无效”。我在这里缺少什么,以及如何在找到 MAX 值后获得年份列的值?年份需要返回给调用程序。
编辑-(解决方案):在 Slacks 的帮助下,我想出了如何完成任务。首先,我发现我的数据表中的数据是字符串类型的,所以将值转换为 double 并确定最大值。然后用一个变量来查找对应的年份。
string sYear = string.Empty;
double dMaxValue = double.MinValue;
foreach (DataRow dr in dsView.Tables[0].Rows)
{
double dValue = Convert.ToDouble(dr.Field<string>("Value"));
if (dValue > dMaxValue)
{
sYear = dr["Year"].ToString();
}
dMaxValue = Math.Max(dMaxValue, dValue);
}
return sYear;
【问题讨论】:
标签: c#