我想转换此DataTable
dt.Columns.Add(new DataColumn("timespan1", typeof(TimeSpan)));
dt.Columns.Add(new DataColumn("timespan2", typeof(TimeSpan)));
进入这个
dt.Columns.Add(new DataColumn("timespan1", typeof(double)));
dt.Columns.Add(new DataColumn("timespan2", typeof(double)));
我设法这样做了。
Double d;
foreach (DataRow row in dt.Rows)
{
dr = dtNew.NewRow();
dr[0] = row.ItemArray[0];
Double.TryParse(((TimeSpan)(row.ItemArray[1])).TotalMinutes.ToString(), out d);
dr[1] = d;
Double.TryParse(((TimeSpan)(row.ItemArray[2])).TotalMinutes.ToString(), out d);
dr[2] = d;
dtNew.Rows.InsertAt(dr, 0);
}
有没有办法使用Linq或lambda表达式?我想将此new <double> DataTable
绑定到堆积条形图。感谢您的帮助。感谢。
答案 0 :(得分:0)
你现在拥有的是正确的,除非你应该直接使用TotalMinutes
而不将其转换为字符串,(如评论中提到的Jon Skeet)。
LINQ用于查询数据,不应用于修改数据。带有foreach
循环的当前代码很清楚,并传达了意图。
但如果您正在寻找LINQ语法,那么您可以这样做:
var dummyQuery = dt.AsEnumerable()
.Select(dr =>
dtNew.Rows.Add(dr.Field<TimeSpan>("timespan1").TotalMinutes,
dr.Field<TimeSpan>("timespan2").TotalMinutes))
.ToList();//To Iterate
这将填充来自两列的DataTable
,dtNew
新值TotalMinutes
。
另一种选择是将您的查询结果投放到Select
匿名类型,然后使用反射来创建DataTable
$("#test").load("http://localhost:8888/projects/superfreerespo/" + id + "/ .gameBox-Ops");