我想在列表中获取我的DataTable的数据列(DataTime类型(。如何使用 LINQ 执行此操作?
我尝试了以下行,但没有奏效:
DateTimeList = dt.Columns.Cast<DataColumn>()
.Where(dc => dc.DataType == typeof(DateTime)).ToList());
日期时间值的创建方式如下:
new DateTime(2019, 6, 17, 16, 46, 05)
要从DataTable
中的DateTime
列返回List<DateTime>
类型:
var dates = dt.Columns.Cast<DataColumn>()
.Where(c => c.DataType == typeof(DateTime))
.SelectMany(c => c.Table.Rows.Cast<DataRow>()
.Select(r => r.Field<DateTime>(c.ColumnName))).ToList();
查询获取所有DateTime
值,无论dt
包含一个或多个Column<DateTime>
类型。
如果表中只有单个DataColumn<DateTime>
类型,则可以改为编写:
var dates = dt.Rows
.Cast<DataRow>()
.Select(r => r.Field<DateTime>(dt.Columns.Cast<DataColumn>()
.FirstOrDefault(c => c.DataType == typeof(DateTime))?.ColumnName)).ToList();