根据变量中的数据计算平均值

时间:2011-08-17 09:16:50

标签: c# linq average

我正在构建一个基本的博客模块,允许用户对博客帖子进行评分。

评级通过ajax扩展提交,并作为INT值保存在数据表中。

当我使用变量将评级调用到页面上时,我想计算整体平均评分。

有人能说明我将如何做这件事吗?

这是我的代码:

var rating = from x in db.DT_Control_BlogRatings
                         where x.Blog_ID == int.Parse(codesnippets.Decrypt(Request["blg"].ToString(), true))
                         select new
                         {
                             x.RatingNo,
                             x.RatingID,
                         };

            string usercount = rating.Count().ToString();

            LB_UserRating.Text = "Currently rated " + usercount + " times";

非常感谢!

5 个答案:

答案 0 :(得分:3)

您是否检查过IEnumerable Average方法?

在您的方案中,您将使用rating.Average(r => r.RatingNo)

答案 1 :(得分:1)

// Extract the blog id before the query, because this instruction can't be translated to SQL
int blogId = int.Parse(codesnippets.Decrypt(Request["blg"].ToString(), true));

var ratings = from x in db.DT_Control_BlogRatings
              where x.Blog_ID == blogId
              select x.RatingNo;
var avg = ratings.Average();

答案 2 :(得分:0)

我会说,按照他们的计数划分的给定职位的所有评分的总和将给你一个平均值。

所以你有给出帖子的频率被评为+ 有多好它被评为功能。

答案 3 :(得分:0)

double ratingAverage = rating.Average (r => r.RatingNo);

答案 4 :(得分:0)

我认为你可以做到:

double avg = rating.Average(rat=>rat.RatingNo);

但是考虑到你的计数可能更好:

int usercount = rating.Count();
double avg = rating.Sum(rat=>rat.RatingNo) / usercount;