public TextAnalyticsReportContext(IEnumerable <Review> reviews) { ReviewScoreGroups = new List <ReviewStarGrouping> { new ReviewStarGrouping(1), new ReviewStarGrouping(2), new ReviewStarGrouping(3), new ReviewStarGrouping(4), new ReviewStarGrouping(5) }; ReviewCollection = reviews.ToList(); foreach (var review in reviews) { ReviewScoreGroups.FirstOrDefault(x => x.StarRating == review.StarRating).Reviews.Add(review.FormatMessage()); KeyPhraseCounts.AppendKeyPhrases(review.KeyPhrases); } MinimumScore = ReviewCollection.Min(x => x.StarRating); MaximumScore = ReviewCollection.Max(x => x.StarRating); AverageScore = ReviewCollection.Average(x => x.StarRating); }