Вычисление среднего из данных в переменной - PullRequest
0 голосов
/ 17 августа 2011

Я создаю базовый модуль блога, который позволяет пользователю оценивать сообщения блога.

Рейтинги передаются через расширение 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 ]

3 голосов
/ 17 августа 2011

Вы проверяли метод IEnumerable Average?

В вашем сценарии вы бы использовали rating.Average(r => r.RatingNo).

1 голос
/ 17 августа 2011
// 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();
0 голосов
/ 17 августа 2011

Я думаю, что вы можете сделать:

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

Однако, если у вас есть счет, может быть лучше:

int usercount = rating.Count();
double avg = rating.Sum(rat=>rat.RatingNo) / usercount;
0 голосов
/ 17 августа 2011

попробуй

double ratingAverage = rating.Average (r => r.RatingNo);
0 голосов
/ 17 августа 2011

Я бы сказал, что сумма всех оценок для данного поста, разделенная на их количество, даст вам среднее значение.

Таким образом, у вас есть как часто данное сообщение оценивалось + насколько хорошо оно было оценено как функция.

...