当前位置:编程学习 > C#/ASP.NET >>

分组查询的select子句是否能进行条件过滤?

var Product14 = from c in srhxxzx
             group c by c.productName into g
             select new
             {
                 g.Key,
                 minProduct=g.Min (c=>c.minProduct),
                 maxProduct=g.Max (c=>c.maxProduct),
                 timeMinProduct=???-----------------要查询最小产品的对应时间
                 sumP=g.Sum(c=>c.amountP &&?????)---这里想过滤amountP=-999的值,不让有这个值的参与求和 
              };

srhxxzx集合有如下属性值:productName,MinTemp,MaxTemp,timeMinProduct,timeMaxProduct,amountP
想实现上面说的过滤,就是找到minProduct所在记录的timeMinProduct的值,还有求和时候过滤-999的值,不知道在select中能否实现? 

--------------------编程问答-------------------- 自己解决了,可以在g中用where条件进行限制。。。 --------------------编程问答-------------------- var Product14 = from c in srhxxzx
  group c by c.productName into g
  select new
  {
  g.Key,
  minProduct=g.Min (c=>c.minProduct),
  maxProduct=g.Max (c=>c.maxProduct),
  timeMinProduct=g.OrderBy(c=>c.ID).time,-----------------要查询最小产品的对应时间
  sumP=g.Where(c=>c.amountP != -999).Sum(c=>c.amountP)---这里想过滤amountP=-999的值,不让有这个值的参与求和  
  };
--------------------编程问答--------------------
引用 1 楼  的回复:
自己解决了,可以在g中用where条件进行限制。。。

当然可以啊,各种扩展方法都可以运用 --------------------编程问答--------------------
引用 2 楼  的回复:
var Product14 = from c in srhxxzx
  group c by c.productName into g
  select new
  {
  g.Key,
  minProduct=g.Min (c=>c.minProduct),
  maxProduct=g.Max (c=>c.maxProduct),
  timeMinProduct=g.Ord……

这个就可以了   但是让我写容易写反了,看了他的也是一种收获 --------------------编程问答-------------------- var Product14 = from c in srhxxzx
   group c by c.productName into g
   select new
   {
   g.Key,
   minProduct=g.Min (c=>c.minProduct),
   maxProduct=g.Max (c=>c.maxProduct),
   timeMinProduct=g.Min(c=>c.minProduct).time???-----------------要查询最小产品的对应时间
   sumP=g.where(c=>c.amountP!=-999).Sum(c=>c.amountP)---这里想过滤amountP=-999的值,不让有这个值的参与求和  
  };
补充:.NET技术 ,  LINQ
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,