Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

C# C# Collections Sets and Dictionaries Using Dictionaries

i tray many code and nothing solve

in this i tray many code but no one work i use tray cach , if , remove but nothing work

LexicalAnalysis.cs
using System.Collections.Generic;

namespace Treehouse.CodeChallenges
{
    public class LexicalAnalysis
    {
        public Dictionary<string, int> WordCount = new Dictionary<string, int>();

        public void AddWord(string word)
        {

                 if (WordCount["rock"] > 0)
                 {
                     WordCount.Remove("rock");
                     WordCount.Add("rock",2);
                 }
        }
    }
}

3 Answers

Steven Parker
Steven Parker
231,198 Points

You won't need "try...catch" for this challenge. But there's three basic things your code needs to do:

  • check to see if the word is already in the dictionary (the "ContainsKey" method can be handy for this)
  • if it exists, increase the count it already has by 1
  • if it does not exist, add it with a count of 1

You are trying to check a key-value pair that you have not added to the dictionary yet. I get this error if I run your code.

Unhandled Exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2.get_Item(TKey key)

To check a dictionary you first have to add something to it

have a look at my console app.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        public static Dictionary<string, int> WordCount = new Dictionary<string, int>();
        public static void Main(string[] args)
        {
            WordCount.Add("rock", 1);
            AddWord("rock");
        }

    public static void AddWord(string word)
    {

        if (WordCount[word] > 0)
        {
            WordCount.Remove(word);
            WordCount.Add(word, 2);
        }
    }
}

}

As you can see i added the first key-value pair then i was able to check it.

Steven Parker
Steven Parker
231,198 Points

:warning: To avoid any potential confusion, the code shown here is not a solution for the challenge.

And for those working on the challenge, note that the instructions say the added code should (only) go into the "AddWord" method.

i tray this code but is not working

im not trying to give the answer for the solution. i simply demonstrated where his code is going wrong. It is perfectly correct.

firstly he did not post what the challenge was asking for. secondly i identified the exception occurring - so he can learn to figure problems out for himself. thirdly i identified the work he was trying to check to see if it was greater than zero did not exist in the first place. fourth and finally i used a console app because it was easier for me to work it out and demonstrate these simple points.

Why not try teaching someone how to learn to problem solve that solving the problem for them? (Moderator redacted)

Steven Parker
Steven Parker
231,198 Points

You can use the "View Challenge" button in the upper right of the window to see for yourself exactly what the challenge is asking for.

I am dedicated to helping students learn to solve problems themselves, and resistant to giving code answers. I primarily provide hints as I have done here. But I try to give hints that will help the student move towards a successful solution.

Please consider that showing someone code that does something other than what is required by the challenge could possibly cause additional confusion.

Jennifer Nordell
seal-mask
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Stephen Mooney I have redacted the ending bit of your "answer" to remove what I consider to be targeted harassment of another student. Please note that name-calling will not be tolerated in the Community. I highly encourage you to read the Code of Conduct that all members of the Community are to abide by. Being a part of this community means being excellent to each and every person you have contact with, whether you agree with their style of helping or not.