c# - Datatable.Select with max(col) 和 WHERE 子句?

标签 c#

我有一个包含以下数据的数据表。

Week    Score           Rank
1       75.8300000000   1
2       76.6800000000   9
3       79.8787870000   4
4       0               0
5       0               0
6       0               0
7       0               0
...
53      0               0

如果数据表只有前 3 周(有 Rank 的周),那么以下行将完美运行。但是现在我需要添加一个 WHERE 子句来获取 MAX(Week),其中 Score 大于 0。在这种情况下,返回的行将是第 3 周。本质上,查询将是 SELECT max(week) From datatable 其中排名 > 0

DataRow[] dr = dsRanks.Tables[0].Select("Week = MAX(Week)");

我尝试了以下操作,但由于返回了 0 行,所以出现索引错误。

DataRow[] dr = dsRanks.Tables[0].Select("Week = MAX(Week) and Rank > 0");

感谢任何帮助。

谢谢。

最佳答案

使用 LINQ 更容易解决:

var week = dsRansk.Tables[0].AsEnumerable()
    .Where(row => row.Field<int>("Rank") > 0)
    .Max(row => row.Field<int>("Week"));

关于c# - Datatable.Select with max(col) 和 WHERE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588799/

相关文章:

c# - C#中的图像边框操作

C# { } 运算符

c# - 如何基于泛型类型创建泛型实例

c# - 如何使用 MVC 错误处理程序(自定义)和 jqgrid 加载错误触发器显示错误消息

c# - 有没有删除cosmos DB文档的c#代码

c# - 获取位图中两点之间的像素数

c# - 从 .NET/C# 中的站点下载图像

c# - 保存时更新 DataGrid 的 WPF 可编辑主从

c# - Awesomium 网页 View 未加载网址

c# - SQL Server : INNER JOIN writes out things two times