努力寻找任何相关信息。在线这个。不可否认,我并不精通linq表达,这可能是一个障碍。
我目前有一个DataTable列表,想要专门搜索所有DateTime变量,以便将值更改为本地时区。
并非所有表都包含DateTime,相关列也会有所不同。
理想情况下,我需要类似的东西。
String string = "abcdef";
char x[] = string; // string = variable, even if it doesn't change.
(或类似的东西,但逐列)
直到知道我甚至无法访问各个表格元素。一个小的快速表显示了我想要的价值
Foreach table in resultTables
Foreach row in table.rows
if row contains dataType(DateTime) then [change value]
提前致谢!
答案 0 :(得分:0)
快速和肮脏的版本,我会这样做:
foreach (DataTable table in resultTables) {
foreach (DataRow row in table.Rows) {
foreach (DataColumn col in table.Columns) {
if (col.DataType == typeof (DateTime)) {
row[col] = // do something
}
}
}
}
当然,如果表中有很多行,可以通过跟踪临时列表中的列来改进。或者切换行和列循环。
答案 1 :(得分:0)
试试这个:
var dateColumns = dt.Columns.Cast<DataColumn>().Where(x => x.DataType == typeof(DateTime));
foreach (DataColumn column in dateColumns)
{
foreach (DataRow row in dt.Rows)
{
row[column.ColumnName] = DateTime.Parse("1/1/4");
}
}