Bird
Raised Fist0
C Sharp (C#)programming~5 mins

Dictionary methods and access patterns in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of the ContainsKey method in a C# Dictionary?
The ContainsKey method checks if a specific key exists in the dictionary. It returns true if the key is found, otherwise false.
Click to reveal answer
beginner
How do you safely retrieve a value from a Dictionary without risking an exception if the key is missing?
Use the TryGetValue method. It attempts to get the value for a key and returns true if successful, otherwise false. This avoids exceptions if the key is not present.
Click to reveal answer
beginner
What happens if you try to access a Dictionary value using a key that does not exist with the indexer syntax (e.g., dict[key])?
Accessing a non-existent key with the indexer throws a KeyNotFoundException. To avoid this, use TryGetValue or check with ContainsKey first.
Click to reveal answer
beginner
Which Dictionary method removes a key and its associated value?
The Remove method deletes the key-value pair from the dictionary. It returns true if the key was found and removed, otherwise false.
Click to reveal answer
beginner
How can you iterate over all keys and values in a Dictionary?
Use a foreach loop over the dictionary. Each item is a KeyValuePair<TKey, TValue> where you can access Key and Value properties.
Click to reveal answer
Which method checks if a key exists in a C# Dictionary?
ATryGetValue
BAdd
CRemove
DContainsKey
What does TryGetValue return if the key is not found?
AThrows an exception
BReturns false
CReturns null
DReturns true
What exception is thrown when accessing a missing key with dict[key]?
AKeyNotFoundException
BNullReferenceException
CIndexOutOfRangeException
DInvalidOperationException
Which method removes a key-value pair from a Dictionary?
AAdd
BClear
CRemove
DContainsKey
How do you access the key and value inside a foreach loop over a Dictionary?
Aitem.Key and item.Value
Bitem[0] and item[1]
Citem.KeyValue
Ditem.GetKey() and item.GetValue()
Explain how to safely get a value from a Dictionary when you are not sure if the key exists.
Think about a method that returns true or false and gives you the value if it exists.
You got /4 concepts.
    Describe how to remove an item from a Dictionary and how to check if the removal was successful.
    Focus on the method that deletes a key-value pair and what it returns.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the ContainsKey method do in a C# Dictionary?
      easy
      A. Checks if a specific key exists in the dictionary
      B. Adds a new key-value pair to the dictionary
      C. Removes a key and its value from the dictionary
      D. Returns the number of items in the dictionary

      Solution

      1. Step 1: Understand the purpose of ContainsKey

        The ContainsKey method checks if a given key is present in the dictionary.
      2. Step 2: Compare with other dictionary methods

        Add adds items, Remove deletes items, and Count returns the number of items, so these are different from ContainsKey.
      3. Final Answer:

        Checks if a specific key exists in the dictionary -> Option A
      4. Quick Check:

        ContainsKey checks key presence [OK]
      Hint: ContainsKey checks if key exists before access [OK]
      Common Mistakes:
      • Confusing ContainsKey with Add method
      • Thinking ContainsKey returns a value instead of a boolean
      • Mixing ContainsKey with Count property
      2. Which of the following is the correct way to add a key-value pair to a Dictionary<string, int> named ages?
      easy
      A. ages.Add("Alice", 30);
      B. ages.Add["Alice"] = 30;
      C. ages["Alice"].Add(30);
      D. ages.Insert("Alice", 30);

      Solution

      1. Step 1: Recall the syntax for adding items to Dictionary

        The correct method to add a key-value pair is Add(key, value).
      2. Step 2: Check each option's syntax

        ages.Add("Alice", 30); uses Add("Alice", 30) which is correct. ages.Add["Alice"] = 30; uses square brackets with Add which is invalid. ages["Alice"].Add(30); tries to call Add on the value, which is wrong. ages.Insert("Alice", 30); uses Insert which does not exist for Dictionary.
      3. Final Answer:

        ages.Add("Alice", 30); -> Option A
      4. Quick Check:

        Add(key, value) syntax [OK]
      Hint: Use Add(key, value) to insert new pairs [OK]
      Common Mistakes:
      • Using square brackets with Add method
      • Trying to call Add on a value instead of dictionary
      • Using Insert method which does not exist
      3. What will be the output of this code?
      var dict = new Dictionary<string, int>();
      dict.Add("x", 10);
      dict["y"] = 20;
      Console.WriteLine(dict["x"] + dict["y"]);
      medium
      A. 10 20
      B. 30
      C. x y
      D. Runtime error

      Solution

      1. Step 1: Understand dictionary additions

        First, dict.Add("x", 10) adds key "x" with value 10. Then dict["y"] = 20 adds key "y" with value 20.
      2. Step 2: Calculate the sum printed

        dict["x"] is 10 and dict["y"] is 20, so their sum is 30.
      3. Final Answer:

        30 -> Option B
      4. Quick Check:

        10 + 20 = 30 [OK]
      Hint: Sum values accessed by keys with dict[key] syntax [OK]
      Common Mistakes:
      • Expecting output as separate values instead of sum
      • Confusing keys and values in output
      • Thinking dict["y"] is invalid without Add
      4. Identify the error in this code snippet:
      var dict = new Dictionary<string, int>();
      dict.Add("a", 1);
      dict.Add("a", 2);
      Console.WriteLine(dict["a"]);
      medium
      A. Key "a" will be removed automatically
      B. Compilation error due to missing semicolon
      C. Duplicate key exception on second Add call
      D. Output will be 2 without error

      Solution

      1. Step 1: Understand Add method behavior with duplicate keys

        The Add method throws an exception if the key already exists.
      2. Step 2: Analyze the code flow

        The first Add("a", 1) works fine. The second Add("a", 2) tries to add the same key again, causing an exception.
      3. Final Answer:

        Duplicate key exception on second Add call -> Option C
      4. Quick Check:

        Adding duplicate key throws exception [OK]
      Hint: Add throws error if key exists; use indexer to overwrite [OK]
      Common Mistakes:
      • Assuming Add overwrites existing keys
      • Expecting no error and value updated
      • Confusing Add with indexer assignment
      5. Given a dictionary scores with student names as keys and their scores as values, which code snippet safely retrieves the score for "John" without causing an error if the key is missing?
      hard
      A. int score = scores.ContainsKey("John");
      B. int score = scores.GetValueOrDefault("John");
      C. int score = scores["John"];
      D. scores.TryGetValue("John", out int score);

      Solution

      1. Step 1: Understand safe retrieval methods

        Using TryGetValue safely tries to get the value and returns false if key is missing without error.
      2. Step 2: Analyze each option

        int score = scores["John"]; throws an exception if "John" is missing. int score = scores.GetValueOrDefault("John"); is invalid in C# Dictionary (GetValueOrDefault is not standard). scores.TryGetValue("John", out int score); uses TryGetValue correctly. int score = scores.ContainsKey("John"); returns a boolean, not the score.
      3. Final Answer:

        scores.TryGetValue("John", out int score); -> Option D
      4. Quick Check:

        TryGetValue safely gets value [OK]
      Hint: Use TryGetValue to avoid errors on missing keys [OK]
      Common Mistakes:
      • Using indexer without checking key existence
      • Confusing ContainsKey with value retrieval
      • Expecting GetValueOrDefault method on Dictionary