【问题标题】:select max and min value from a sequence from datatable using LINQ使用 LINQ 从数据表中的序列中选择最大值和最小值
【发布时间】:2020-01-09 11:30:11
【问题描述】:

我正在尝试使用 LINQ 查询从数据表中获取最大值。

var maxVal  =(from rowmax in datatable.AsEnumerable()
               where rowmax.Field<string>(column name A)=="1000"
               && rowmax.Field<string>(column name B)=="36"
              select rowmax.Field<string>(column name C)).Max();

我在 C 列中有小于这些数字的值,例如(154.93445、142.05789、110.45632 和 94.34623 等)。但是当我对 MAX 进行上述查询时,我得到 94.34623 但不是 154.93445。我想获取最大数字 154.93445。

请指出我做错了什么。

【问题讨论】:

  • 当数字为十进制时,为什么列类型为 。您正在进行字符串比较而不是数字比较。

标签: c# linq datatable


【解决方案1】:

Max 被调用的是一个字符串而不是一个数字,你需要做一些从字符串到浮点类型的转换。

【讨论】:

  • "你需要做一些转换"比如Convert.ToSingle ??
  • 类似select double.parse(rowmax.Field&lt;string&gt;(column name C))。问题是 .Max() 方法调用被应用于可枚举的字符串类型,它需要应用于可枚举的浮点类型,而不是像 double。
  • 你为什么不简单地把它写到你的答案中?
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 2018-08-24
相关资源
最近更新 更多