I am writing a method for my MVC4 webapp (in C#) that will get a list of Blog objects and spit out a two-column list of the Category and it's Hits. The problem I am having with my provided code is that KeyValuePairs are immutable. The end goal is to use this variable (trimmed to the first 6 rows/pairs) to display the top categories (by how many times any article in that category has been viewed).
Should I be using a different variable type or do the update differently?

```
public List<KeyValuePair<string, int>> Top6BlogCategories()
    {
        // Get Blog posts
        IEnumerable<Blog> posts = db.Blogs.ToList();

        // Get Blog Categories
        IEnumerable<string> categories = Categories();

        // Create a variable to hold the Category and its Hits
        List<KeyValuePair<string, int>> categoryHits = new List<KeyValuePair<string,int>>();

        // Populate the List's first column (Category)
        foreach(var category in categories)
        {
            categoryHits.Add(new KeyValuePair<string, int>(category, 0));
        }

        // Populate the List's second column (Hits)
        foreach(var row in categoryHits)
        {
            foreach(var post in posts)
            {
                if(post.Category == row.Key)
                {
                    row.Value++;
                }
            }
        }

        return categoryHits;
    }

```