我需要将LINQ查询结果设置为double数组。 执行下一个语句后,我得到匿名类型,我无法将数组转换为double类型。我怎样才能做到这一点? 代码:
var rls = context.Test
.GroupBy(cont => new
{
wd = System.Data.Objects.SqlClient.SqlFunctions.DatePart("weekday", cont.datetime),
hh = System.Data.Objects.SqlClient.SqlFunctions.DatePart("hour", cont.datetime)
})
.Select(rs => new
{
rs.Key.wd,
rs.Key.hh,
count = rs.Count()
}).Where(rs => rs.hh != null & rs.wd !=null).ToArray();
提前致谢。
答案 0 :(得分:1)
问题是这个Select
方法返回一个匿名类型,这成为该点之后查询的返回类型
.Select(rs => new
{
rs.Key.wd,
rs.Key.hh,
count = rs.Count()
})
为了返回另一种类型,您需要另一个Select
语句来创建要在管道中返回的新值。问题提到获得double
返回,但不清楚您希望将哪个值作为double
值。如果您只想返回说wd
参数,那么您可以执行以下操作
.Where(rs => rs.hh != null & rs.wd !=null)
.Select(x => x.wd)
.ToArray();