2
我有一个表中存储数据值和两个分层标签的数据库。Linq GroupBy与多个组的投影
Data
{
int ID,
string Label,
string Section,
double Value
}
一个示例项,来说明我的问题:
{"Sport", "", 12}
{"Sport", "Baseball", 33}
{"Sport", "Football", 44}
{"Food", "", 34}
{"Food", "Pizza", 56}
{"Food", "Donuts", 19}
我希望能够打印出的价值观,像这样:
Sport | 12
Baseball | 33
Football | 44
Food | 34
Pizza | 56
Donuts | 19
这是我的代码那就完成了我想要的50%:
var first = (from d in db.Data
where d.ID= PARAM
select d);
var row = first.GroupBy(x => x.Label);
foreach (var k in row)
{
Console.Write(k.Key + "\t|");
foreach (var j in k)
{
Console.Write(j.Data);
}
Console.Write("\n");
}
但这只是打印出来:
Sport | 12
Sport | 33
Sport | 44
Food | 34
Food | 56
Food | 19
我明白为什么,我只是不知道如何从k.key
部分访问.Section
属性。
如何使用linq来实现我想要的输出?
我得到它的工作:
变种行= first.GroupBy(X =>新的{x.Label,x.Section});
foreach (var k in row)
{
Console.Write(k.Key.Section == null || k.Key.Section == "" ? k.Key.Label : k.Key.Section);
...
}
新问题:
如何检测 “运动”/边缘 “民以食为天”。我想插入一个分隔符(------------);
你们的榜样输出不匹配你的代码。 – dtb 2010-09-27 16:44:44