从 DataRow[] 获取具有最大 DateTime 值的 DataRow
Getting the DataRow with max DateTime value from DataRow[]
DataTable dt = db.Execute("select statement...");
我有这个数据表,其中包含一些带有状态列和日期列的数据。
我从该数据中过滤以仅获取具有特定状态的行
DataRow[] potentialRows = dt.Select("status = 1");
现在我的问题是:
从潜在行的这个 DataRow[] 中,我想进一步过滤它,只得到一个包含离今天最近的日期的 DataRow
(例如:如果我有两行:一行的日期是昨天,另一行的日期是一周前,我想要日期为昨天的 DataRow)
我尝试了以下方法:
DataRow dr = potentialRows.Max(x => x["date"]) as DataRow;
但这似乎不起作用,所以我一定是遗漏了什么。
感谢您提出任何意见或解决方案。
这解决了我的问题:
dr = potentialRows.OfType<DataRow>().OrderBy(r => r["date"]).LastOrDefault<DataRow>();
按日期字段对数组进行排序并获取保存最新日期的最后一个元素。
DataTable dt = db.Execute("select statement...");
我有这个数据表,其中包含一些带有状态列和日期列的数据。
我从该数据中过滤以仅获取具有特定状态的行
DataRow[] potentialRows = dt.Select("status = 1");
现在我的问题是:
从潜在行的这个 DataRow[] 中,我想进一步过滤它,只得到一个包含离今天最近的日期的 DataRow
(例如:如果我有两行:一行的日期是昨天,另一行的日期是一周前,我想要日期为昨天的 DataRow)
我尝试了以下方法:
DataRow dr = potentialRows.Max(x => x["date"]) as DataRow;
但这似乎不起作用,所以我一定是遗漏了什么。
感谢您提出任何意见或解决方案。
这解决了我的问题:
dr = potentialRows.OfType<DataRow>().OrderBy(r => r["date"]).LastOrDefault<DataRow>();
按日期字段对数组进行排序并获取保存最新日期的最后一个元素。