Don of the Day

Don of the Day


Adventures in software development with Xamarin and the Web

Software developer, building things with code in sunny Scottsdale, AZ.

Share


Twitter


C# 5 Star Rating Code

Don FitzsimmonsDon Fitzsimmons

You would think this would be an easy thing to find with a quick Goole search, but it's not. In a web app I'm working on, I just wanted to implement a simple rating for accounts from 1 to 5 stars. I figured someone has done this before and searched away. I found very little so I figured I would post some code showing how this is done in case some other poor soul wants to create a 5 star rating using C#. So here you go, internet:


public class Rating
{
    public int Weight
    {
        get;
        private set;
    }

    public int NumberOfReviews
    {
        get;
        private set;
    }

    public Rating(int weight, int numberOfReviews)
    {
        Weight = weight;
        NumberOfReviews = numberOfReviews;
    }
}

public class Program
{
    public static void Main()
    {
        var ratings = new List();
        ratings.Add(new Rating(5, 252));
        ratings.Add(new Rating(4, 124));
        ratings.Add(new Rating(3, 40));
        ratings.Add(new Rating(2, 29));
        ratings.Add(new Rating(1, 33));
        Console.WriteLine(CalculateRating(ratings));
    }

    private static decimal CalculateRating(List ratings)
    {
        double totalWeight = 0;
        int totalReviews = 0;
        foreach (var rating in ratings)
        {
            var weightByNumber = rating.Weight * rating.NumberOfReviews;
            totalWeight += weightByNumber;
            totalReviews += rating.NumberOfReviews;
        }

        return (decimal)Math.Round(totalWeight / totalReviews, 2);
    }
}

This should print out 4.12 as the rating.

C#
C#

Software developer, building things with code in sunny Scottsdale, AZ.

Comments