她是一张显示我所拥有的桌子的图片,b我需要显示的网格.
opps无法发布图片.我试着解释一下.我的桌子有四个柱子.
opps无法发布图片.我试着解释一下.我的桌子有四个柱子.
>项目编号(String)
> ItemNumber(String)
>位置(字符串)
>数量.(真实的).
我的网格需要看起来像这样.
> ProjectNumber
> ItemNumber
> QtyMain.
>数量其他.
我需要写一个linq查询分组evry line所以我将se 1行pr项目/ ItemNumber组合求和数量为2个不同的列1显示到qty其中location是main,1表示qty where location不是(!=)main. linq可以为我做这个,或者怎么办?
解决方法
public class Foo { public Int32 ProjectNumber; public String ItemNumber; public String InventLocation; public Int32 Qty; } void Main() { List<Foo> foos = new List<Foo>(new[]{ new Foo { ProjectNumber = 1,ItemNumber = "a",InventLocation = "Main",Qty = 3 },new Foo { ProjectNumber = 1,InventLocation = "Sub",Qty = 2 },Qty = 1 },InventLocation = "Sub2",Qty = 5 } }); var foo = from f in foos group f by new { f.ProjectNumber,f.ItemNumber } into fGroup select new { ProjectNumber = fGroup.Key.ProjectNumber,ItemNumber = fGroup.Key.ItemNumber,QtyMain = fGroup.Where (g => g.InventLocation == "Main").Sum (g => g.Qty),Rest = fGroup.Where (g => g.InventLocation != "Main").Sum (g => g.Qty) }; foo.Dump(); }
导致:
IEnumerable<> (1 item) ProjectNumber ItemNumber QtyMain Rest 1 a 6 8