回答
这将使你在找什么:
// Initial Code for Testing
DataTable dt = new DataTable();
dt.Columns.Add("Dates", typeof(DateTime));
dt.Rows.Add(new object[] { DateTime.Now });
dt.Rows.Add(new object[] { DateTime.Now.AddDays(1) });
dt.Rows.Add(new object[] { DateTime.Now.AddDays(2) });
这是您要使用的代码:
// Actual Code
DataColumn col = dt.Columns[0]; // Call this the one you have
DataTable tbl = col.Table;
var first = tbl.AsEnumerable()
.Select(cols => cols.Field<DateTime>(col.ColumnName))
.OrderBy(p => p.Ticks)
.FirstOrDefault();
var last = tbl.AsEnumerable()
.Select(cols => cols.Field<DateTime>(col.ColumnName))
.OrderByDescending(p => p.Ticks)
.FirstOrDefault();
你的做法是最好看:) –
从您的DataColumn只是retreive日期时间的列表, 的foreach排在你的DataColumn当前元素添加到您的DateTime的名单。然后
List<DateTime>
和使用Sort
方法得到的第一个和最后一个值。
根据你的框架版本,上面的2.0
使用,为>=3.5
可以使用Max
和Min
或 使用LINQ .OrderByDesc(p => p.X).FirstOrDefault();
您的DateTime名单
一旦你的名单<>你还不如用MAX()和MIN()。但我认为这是关于获取名单。 –
@Henk,你在哪里找到这些方法? Max()和Min()。 –
Linq-to-Objects –
DataTable dt = new DataTable("MyDataTable");
DataColumn dc = new DataColumn("DateColumn");
dc.DataType = typeof(DateTime);
dt.Columns.Add(dc);
for (int i = 0; i <= 5; i++)
{
DataRow newRow = dt.NewRow();
newRow[0] = DateTime.Now.AddDays(i);
dt.Rows.Add(newRow);
}
DateTime maxDate =
Convert.ToDateTime(
((from DataRow dr in dt.Rows
orderby Convert.ToDateTime(dr["DateColumn"]) descending
select dr).FirstOrDefault()["DateColumn"]
)
);
DateTime minDate =
Convert.ToDateTime(
((from DataRow dr in dt.Rows
orderby Convert.ToDateTime(dr["DateColumn"]) ascending
select dr).FirstOrDefault()["DateColumn"]
)
);
object maxDate = dataTable.Compute("MAX(TheDateColumnName)", null);
object minDate = dataTable.Compute("MIN(TheDateColumnName)", null);
为了增加从凯尔的答案,是不是更容易只是做:
var first = tbl.AsEnumerable()
.Max(r => r.Field<DateTime>(col.ColumnName));
和
var first = tbl.AsEnumerable()
.Min(r => r.Field<DateTime>(col.ColumnName));
- 1. DataColumn - 如何区分日期时间或日期时间2
- 2. 查找最大和日期时间
- 3. 获取两个日期之间的最大日期/时间
- 4. 从c#中的给定日期时间查找最大日期时间#
- 5. 猫鼬:找到日期条目之间的最大时差
- 6. 如何找到最近的一个星期的任意日期?
- 7. 查找日期列表中最大的时间间隔
- 8. 总结日期,数到最小和最大日期按时间间隔 - SQL
- 9. 如何从另一个日期时间减去日期时间?
- 10. 选择时间间隔日期最大日期和最短日期
- 11. 在Linq组中查找最大和最小日期时间
- 12. MSAccess的最大值日期/时间
- 13. 找到最后一个付款日期
- 14. SQL Server找到最近的班次开始(时间)到一个日期
- 15. 从一个日期时间和另一个日期时间的合并日期
- 16. 得到一个最大的日期,如果日期是不是唯一的
- 17. 如何找到除去假期的最后一个工作日
- 18. 如何找到一个范围的日期之间的记录
- 19. 如何找到两个日期时间字符串的区别?
- 20. 如何找到最近的日期?
- 21. 如何从日期找到一个月的遗体日期?
- 22. 开始日期到结束日期之间的查找时间
- 23. 如何截断/跨越日期到一个时间间隔?
- 24. 如何从日期时间戳得到时间和日期
- 25. 如何通过条款找到每个组的日期时间值的最大值组
- 26. 如何找到两个日期之间的星期差异
- 27. 错误在得到相应的最大值的日期时间
- 28. 如何在一个月内找到第一个和最后一个日期
- 29. 如何与最大日期
- 30. 如何确定DataColumn的类型是数字,字符串还是日期时间?
只是一个DataColumn?它绑定到一个DataTable什么的? –