获取要列出的 DataTable 的 DateTime 数据列
Get DataTime DataColumn of DataTable to List
我想在列表中获取我的 DataTable 的 DataColumn(DataTime 类型)。我如何使用 LINQ 执行此操作?
我尝试了以下几行但没有成功:
DateTimeList = dt.Columns.Cast<DataColumn>()
.Where(dc => dc.DataType == typeof(DateTime)).ToList());
日期时间值的创建方式如下:
new DateTime(2019, 6, 17, 16, 46, 05)
到 return List<DateTime>
从 DataTable
中的 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();
无论 dt
是否包含一种或多种 Column<DateTime>
类型,查询都会获取所有 DateTime
值。
如果您在 table 中只有一个 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();
我想在列表中获取我的 DataTable 的 DataColumn(DataTime 类型)。我如何使用 LINQ 执行此操作?
我尝试了以下几行但没有成功:
DateTimeList = dt.Columns.Cast<DataColumn>()
.Where(dc => dc.DataType == typeof(DateTime)).ToList());
日期时间值的创建方式如下:
new DateTime(2019, 6, 17, 16, 46, 05)
到 return List<DateTime>
从 DataTable
中的 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();
无论 dt
是否包含一种或多种 Column<DateTime>
类型,查询都会获取所有 DateTime
值。
如果您在 table 中只有一个 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();