2016-11-01 59 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 - 歡迎您:) –