我有一个列表:
List<DataBanerModel> banerData = new List<DataBanerModel>();
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 1, Box = 1 });
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 1, Box = 2 });
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 1, Box = 3 });
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 2, Box = 1 });
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 2, Box = 2 });
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 2, Box = 3 });
banerData.Add(new DataBanerModel { Shop = 1, Cartoon = 3, Box = 1 });
banerData.Add(new DataBanerModel { Shop = 2, Cartoon = 1, Box = 1 });
banerData.Add(new DataBanerModel { Shop = 2, Cartoon = 1, Box = 2 });
banerData.Add(new DataBanerModel { Shop = 2, Cartoon = 1, Box = 3 });
banerData.Add(new DataBanerModel { Shop = 3, Cartoon = 1, Box = 1 });
banerData.Add(new DataBanerModel { Shop = 3, Cartoon = 1, Box = 2 });
banerData.Add(new DataBanerModel { Shop = 3, Cartoon = 1, Box = 3 });
banerData.Add(new DataBanerModel { Shop = 3, Cartoon = 2, Box = 1 });
banerData.Add(new DataBanerModel { Shop = 3, Cartoon = 2, Box = 2 });
我必须数一下有多少个盒子(Box)
在卡通片(Cartoon)
里面,还要数一下有多少个卡通片(Cartoon)
在商店(Shop)
里面,所以结果应该是这样的:
Shop: 1, Cartoons: 3, Boxes: 3
Shop: 1, Cartoons: 3, Boxes: 3
Shop: 1, Cartoons: 3, Boxes: 1
Shop: 2, Cartoons: 1, Boxes: 3
Shop: 3, Cartoons: 2, Boxes: 3
Shop: 3, Cartoons: 2, Boxes: 2
到目前为止,我写了:
var step4 = banerData.GroupBy(x => x.Shop)
.Select(s => new
{
Shops = s.Key,
Cartoons = s.GroupBy(y => y.Cartoon)
.Select(k => new
{
k.Key,
Boxes = k.GroupBy(z => z.Box)
.Select(p => p.Key).ToList()
}).ToList()
}).ToList();
它运行良好,但我不知道如何展开这棵树。