我有一个如下所示的数据集:
日期 类别 率 量
对于任何给定日期,每个类别将有0或1行。
将这些数据转换为摘要类型的视图有什么好方法?
例如:
日期 Category1_Rate Category2_Rate Category3_Rate Category4_Rate
我有固定数量的类别。
我正在使用linq。
这是一个例子。如果我有这些数据:
Date Category Rate Quantity
1/1/12 toys 15 12
1/1/12 games 20 20
1/1/12 dvds 18 30
1/2/12 toys 19 13
1/2/12 dvds 20 17
我想制作一个如下所示的摘要:
Date toys_rate games_rate dvds_rate
1/1/12 15 20 18
1/2/12 19 null 20
答案 0 :(得分:2)
可能是这样的
var summarydata =
from r in table
group r by r.Date into g
select new
{
Date = g.Key,
ToysRate = g.Where(e=> e.Category == "toys").Count() > 0 ?
(int?)g.Where(e=> e.Category == "toys").First().Rate : null,
GamesRate = g.Where(e=> e.Category == "games").Count() > 0 ?
(int?)g.Where(e=> e.Category == "games").First().Rate : null,
DvdsRate = g.Where(e=> e.Category == "dvds").Count() > 0 ?
(int?)g.Where(e=> e.Category == "dvds").First().Rate : null
};
注意我没有对此进行测试,因为我目前无法访问C#环境。
编辑 - 添加了可空的int强制转换,以便在生成的匿名类型中正确设置各种费率字段的类型。