2016-11-01 33 views
2

条件中的一列的我有一些像这样的列中的数据表:和使用LINQ

如:

WorkHour  Salary Name 
    60   100  A 
    70   120  B 
    65   105  C 

WorkHour的总和:

总薪酬:

我想总结“工作时间”和“薪水”栏,但条件: 如果名称== A添加WorkHour来总和但不添加它的薪水。

这里是我的代码:

var resultSum = from row in dt.AsEnumerable() 
       group row by row.Field<string>("UserId") into grp 
       select new 
       { 
        Salary = grp.Sum(r => r.Field<decimal>("Salary")), 
        WorkHour = grp.Sum(r => r.Field<decimal>("WorkHour")) 
       }; 

foreach (var rn in resultSum) 
{ 
    decimal dSalary = rn.Salary; 
    decimal WorkHour = rn.WorkHour; 
} 
+0

LINQ 2 SQL,LINQ 2点的对象,实体框架? –

回答

2

组记录,然后计算Salary添加WhereSum时:

var result = (from item in dt.AsEnumerable() 
       group item by item.Field<string>("UserId") into g 
       select 
       { 
        Salary = g.Where(i => i.Field<string>("Name") != "A") 
          .Sum(i => i.Field<decimal>("Salary")), 
        WorkHour = g.Sum(i => i.Field<decimal>("WorkHour")) 
       }).ToList(); 
+0

谢谢@Gilad Green。它的工作。 – shiva1367

+0

@ shiva1367 - 欢迎您:) –