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
Dictionary methods and access patterns
📖 Scenario: You are managing a small store's inventory. You want to keep track of product names and their quantities using a dictionary.
🎯 Goal: Build a C# program that creates a dictionary of products and quantities, checks for a specific product, updates quantities, and prints the final inventory.
📋 What You'll Learn
Create a dictionary called inventory with exact product names and quantities
Create a variable called productToCheck with the exact value "Bananas"
Use the ContainsKey method to check if productToCheck is in inventory
If the product exists, increase its quantity by 10 using the indexer
Print the final inventory dictionary contents in the format Product: Quantity
💡 Why This Matters
🌍 Real World
Managing store inventory is a common task where dictionaries help track product quantities efficiently.
💼 Career
Understanding dictionary methods and access patterns is essential for software developers working with data collections and real-world applications.
Progress0 / 4 steps
1
Create the inventory dictionary
Create a dictionary called inventory with these exact entries: "Apples" with quantity 50, "Bananas" with quantity 30, and "Oranges" with quantity 20.
C Sharp (C#)
Hint
Use new Dictionary<string, int>() and initialize with curly braces containing key-value pairs.
2
Add a product to check
Create a string variable called productToCheck and set it to the exact value "Bananas".
C Sharp (C#)
Hint
Use string productToCheck = "Bananas"; to create the variable.
3
Check and update the product quantity
Use if (inventory.ContainsKey(productToCheck)) to check if productToCheck is in inventory. If it is, increase its quantity by 10 using inventory[productToCheck] += 10;.
C Sharp (C#)
Hint
Use ContainsKey to check presence, then update with the indexer.
4
Print the final inventory
Use a foreach loop with var item in inventory to print each product and its quantity in the format Product: Quantity using Console.WriteLine($"{item.Key}: {item.Value}");.
C Sharp (C#)
Hint
Use a foreach loop and Console.WriteLine with string interpolation.
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
Step 1: Understand the purpose of ContainsKey
The ContainsKey method checks if a given key is present in the dictionary.
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.
Final Answer:
Checks if a specific key exists in the dictionary -> Option A
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
Step 1: Recall the syntax for adding items to Dictionary
The correct method to add a key-value pair is Add(key, value).
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.
Final Answer:
ages.Add("Alice", 30); -> Option A
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
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.
Step 2: Calculate the sum printed
dict["x"] is 10 and dict["y"] is 20, so their sum is 30.
Final Answer:
30 -> Option B
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
Step 1: Understand Add method behavior with duplicate keys
The Add method throws an exception if the key already exists.
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.
Final Answer:
Duplicate key exception on second Add call -> Option C
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
Step 1: Understand safe retrieval methods
Using TryGetValue safely tries to get the value and returns false if key is missing without error.
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.
Final Answer:
scores.TryGetValue("John", out int score); -> Option D
Quick Check:
TryGetValue safely gets value [OK]
Hint: Use TryGetValue to avoid errors on missing keys [OK]