2011-01-04 4 views
30

누군가를 원하면 LINQ 구문을 사용하여 평균을 계산할 수 있습니다. 예를 들어, 나는 다음과 같은 LINQ 쿼리를 가지고 :LINQ를 사용하여 평균을 얻으십시오.

var rates = from rating in ctx.Rates 
      where rating.Id == Id 
      select new 
      { 
       UserId = rating.UserId, 
       Rating = rating.Rating 
      }; 

(10)의 경우 레코드가 반환되어, 나는 평가 필드 평균을 계산해야합니다. 내 DB에서 Double로 정의됩니다. EF에 LINQ를 사용하고 있습니다. 그래서 나는 UserId, MiscId를 할당 할 것이고 등급은 반환 된 레코드의 평균이 될 것입니다. 한 객체를 클라이언트 코드로 다시 전달합니다.

답변

27

사용자 당 평균 등급을 찾으십니까? 그렇다면 GroupByAverage을 모두 사용해야합니다.

var rates = ctx.Rates 
       .Where(r => r.Id == Id) 
       .GroupBy(g => g.UserId, r => r.Rating) 
       .Select(g => new 
       { 
        UserId = g.Key, 
        Rating = g.Average() 
       }); 
70
double RatingAverage = ctx.Rates.Where(r => r.Id == Id).Average(r => r.Rating); 
+0

간단하고 겸손한 :) – user9371102

+0

매우 간단합니다. 감사! –

+4

이것은 허용 된 대답이어야합니다. 감사. –