2011-01-04 2 views
30

誰かがLINQ構文を使用して平均を計算するのを手助けすることができます。例えば、私は次のLINQクエリを持っている:10件のレコードが返された場合LINQを使用して平均を取得する

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

、私は評価欄に平均値を計算する必要があります。それは私のDBのDoubleとして定義されています。私はEFにLINQを使用しています。だから、私はUserId、MiscIdを割り当てて、評価は返されたレコードの平均になります。 1つのオブジェクトをクライアントコードに戻しています。

答えて

27

ユーザーIDごとの平均評価をお探しですか?その場合は、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

これが受け入れられる回答である必要があります。ありがとう。 –

関連する問題