【发布时间】:2010-11-10 10:46:40
【问题描述】:
我有一个这样的实体:
public class Category
{
public int classid {get;set;}
public int itemid {get;set;}
public string label {get;set;}
}
所以一个 List 会产生这个 JSON(三种尺寸和三种颜色
[{"classid":1,"itemid":1,"label":"Small"},
{"classid":1,"itemid":2,"label":"Medium"},
{"classid":1,"itemid":3,"label":"Large"},
{"classid":2,"itemid":1,"label":"Blue"},
{"classid":2,"itemid":2,"label":"Green"},
{"classid":2,"itemid":3,"label":"Red"},
{"classid":3,"itemid":1,"label":"Tee"},
{"classid":3,"itemid":2,"label":"Golf"},
{"classid":3,"itemid":3,"label":"Dress"}]
然而,JavaScript 客户端需要这样的东西 myarray[][].label:
[[{"itemid":1,"label":"Small"},
{"itemid":2,"label":"Medium"},
{"itemid":3,"label":"Large"}],
[{"itemid":1,"label":"Blue"},
{"itemid":2,"label":"Green"},
{"itemid":3,"label":"Red"}],
[{"itemid":1,"label":"Tee"},
{"itemid":2,"label":"Golf"},
{"itemid":3,"label":"Dress"}]]
这是在我的 Linq 查询中间的 smack dab。
我将如何构造 Linq 查询以从 Linq 中的一维数组组装二维数组?
编辑:现有查询:
...
CATS = (from myP in myProduct.ProductCategories
select new ProductCategory
{
classid = myP.classid,
itemid = myP.itemid,
label = myP.label
}),
...
编辑:越来越近:
CATS = (from myP in myProduct.ProductCategories
group myP by myP.classid into groups
select new resultClass
{ classid = groups.Key,
opts = groups.Select(x =>
new ProductOption
{ itemid = x.itemid,
label = x.label}) }),
【问题讨论】:
-
向我们展示您现有的查询,我们将尝试对其进行修复以满足新的要求。
-
这将与 GroupBy(item => item.classid) 相关,但如果没有您当前的查询,我将无法弄清楚其余部分会是什么样子。
标签: c# linq linq-to-entities