2012-09-25 8 views
-1

요약 테이블을 반환하는 LINQ 함수가 있습니다.Where IN 연산자를 사용하는 LINQ 절

private DataTable CreateSummaryFocusOfEffortData() 
    { 
     var result = ReportData.AsEnumerable() 
      .GroupBy(row => new 
           { 
            Value = row.Field<string>("Value"), 
            Description = row.Field<string>("Description") 

           }) 
      .Select(g => 
         { 
          var row = g.First(); 
          row.SetField("Hours", g.Sum(r => r.Field<double>("Hours"))); 

          return row; 
         }); 

     return result.CopyToDataTable(); 
    } 

이제이 함수에 WHERE 절을 추가하여 목록에있는 필드의 행을 요약합니다. SQL의 IN 연산자와 같은 것입니다. 예를 들어, 값 (1,2,3)이있는 목록이 있고 where 절을 기준으로 목록에있는 값을 기준으로합니다.

private DataTable CreateSummaryFocusOfEffortData(List<int> yourList) 
{ 
    var result = ReportData.AsEnumerable() 
     .GroupBy(row => new 
          { 
           Value = row.Field<string>("Value"), 
           Description = row.Field<string>("Description") 

          }) 
     .Select(g => 
        { 
         var row = g.First(); 
         row.SetField("Hours", 
            g.Where(r=>yourList.Contains(r.Field<int>("Id"))) 
             .Sum(r => r.Field<double>("Hours"))); 

         return row; 
        }); 

    return result.CopyToDataTable(); 
} 
+0

부정적인 점수 무엇인가 –

답변

1

당신이 그것을 시도 할 수있는 방법 그냥 예

?
+0

빠른 응답을 주셔서 감사합니다. 매력과 같은 작품. 매우 감사. –