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

Dictionary key-value collection in C Sharp (C#) - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a new dictionary in C#.

C Sharp (C#)
var dict = new Dictionary<string, int>[1];
Drag options to blanks, or click blank then click option'
A{}
B<>
C[]
D()
Attempts:
3 left
💡 Hint
Common Mistakes
Using curly braces {} instead of parentheses () to instantiate the dictionary.
Using angle brackets <> which are for generic type parameters, not instantiation.
2fill in blank
medium

Complete the code to add a key-value pair to the dictionary.

C Sharp (C#)
dict.[1]("apple", 5);
Drag options to blanks, or click blank then click option'
AInsert
BPut
CAdd
DSet
Attempts:
3 left
💡 Hint
Common Mistakes
Using Insert or Put which are not dictionary methods in C#.
Using Set which is not a method for adding items to a dictionary.
3fill in blank
hard

Fix the error in accessing a value by key from the dictionary.

C Sharp (C#)
int count = dict[[1]];
Drag options to blanks, or click blank then click option'
Acount
B"apple"
Capple
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using the key without quotes which causes a compile error.
Using a number or variable name instead of the string key.
4fill in blank
hard

Fill both blanks to check if a key exists and get its value safely.

C Sharp (C#)
if (dict.[1]("banana", out int [2])) {
    Console.WriteLine([2]);
}
Drag options to blanks, or click blank then click option'
ATryGetValue
BContainsKey
Cvalue
Dresult
Attempts:
3 left
💡 Hint
Common Mistakes
Using ContainsKey which only checks existence but does not get the value.
Using variable names that are not declared or mismatched.
5fill in blank
hard

Fill all three blanks to create a dictionary from a list of keys with initial value 0.

C Sharp (C#)
var keys = new List<string> {"a", "b", "c"};
var dict = keys.ToDictionary([1] => [2], [3] => 0);
Drag options to blanks, or click blank then click option'
Akey
Bk
C_
Dx
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in the two lambdas which causes errors.
Using underscore '_' as a variable name in this context.

Practice

(1/5)
1. What is the main purpose of a Dictionary in C#?
easy
A. To create graphical user interfaces
B. To store data in a sequential list
C. To perform mathematical calculations
D. To store data as key-value pairs for quick access

Solution

  1. Step 1: Understand the Dictionary concept

    A Dictionary stores data as pairs where each key is linked to a value for fast lookup.
  2. Step 2: Compare with other options

    Options B, C, and D describe lists, math, and UI, which are unrelated to Dictionary's purpose.
  3. Final Answer:

    To store data as key-value pairs for quick access -> Option D
  4. Quick Check:

    Dictionary = key-value pairs [OK]
Hint: Remember: Dictionary = keys + values for fast lookup [OK]
Common Mistakes:
  • Confusing Dictionary with List
  • Thinking Dictionary stores only values
  • Assuming Dictionary is for UI or math
2. Which of the following is the correct way to add a key-value pair to a Dictionary<int, string> named dict?
easy
A. dict.Add(1, "apple");
B. dict.Insert(1, "apple");
C. dict["1"] = "apple";
D. dict.Put(1, "apple");

Solution

  1. Step 1: Recall Dictionary methods

    The method to add a new key-value pair is Add(key, value).
  2. Step 2: Check options

    Only dict.Add(1, "apple"); uses Add. dict[1] = "apple"; uses indexer which sets or updates but is not the method to add explicitly.
  3. Final Answer:

    dict.Add(1, "apple"); -> Option A
  4. Quick Check:

    Add() method adds key-value pair [OK]
Hint: Use Add() to insert new pairs, indexer to update [OK]
Common Mistakes:
  • Using Insert or Put which don't exist
  • Confusing Add() with indexer for adding
  • Trying to add with wrong method name
3. What will be the output of this C# code?
var dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict[2] = "two";
Console.WriteLine(dict[1] + ", " + dict[2]);
medium
A. two, one
B. 1, 2
C. one, two
D. Runtime error

Solution

  1. Step 1: Understand dictionary additions

    Key 1 is added with value "one" using Add(). Key 2 is set to "two" using indexer.
  2. Step 2: Check output of Console.WriteLine

    It prints values for keys 1 and 2 joined by comma: "one, two".
  3. Final Answer:

    one, two -> Option C
  4. Quick Check:

    dict[1] = one, dict[2] = two [OK]
Hint: Indexer sets or updates; Add inserts new pairs [OK]
Common Mistakes:
  • Confusing keys with values in output
  • Expecting keys printed instead of values
  • Thinking indexer causes error if key missing
4. What is wrong with this code snippet?
var dict = new Dictionary<int, string>();
dict.Add(1, "apple");
dict.Add(1, "banana");
medium
A. It will compile and run without errors
B. It causes a runtime exception due to duplicate key
C. It overwrites the first value with the second
D. It causes a compile-time error

Solution

  1. Step 1: Understand Add() behavior with duplicate keys

    Adding a key that already exists causes a runtime exception.
  2. Step 2: Check code behavior

    Second Add with key 1 throws an ArgumentException at runtime.
  3. Final Answer:

    It causes a runtime exception due to duplicate key -> Option B
  4. Quick Check:

    Duplicate keys cause runtime error [OK]
Hint: Add() fails if key exists; use indexer to overwrite [OK]
Common Mistakes:
  • Assuming Add overwrites existing key
  • Expecting compile-time error instead of runtime
  • Confusing Add with indexer behavior
5. Given a list of user IDs and names:
var users = new List<(int id, string name)> { (1, "Alice"), (2, "Bob"), (3, "Charlie") };

Which code correctly creates a Dictionary<int, string> mapping IDs to names using a dictionary comprehension style?
hard
A. var dict = users.ToDictionary(u => u.id, u => u.name);
B. var dict = new Dictionary<int, string>(); foreach(var u in users) dict.Add(u.name, u.id);
C. var dict = users.Select(u => new { u.id, u.name }).ToList();
D. var dict = new Dictionary<string, int>(); foreach(var u in users) dict[u.id] = u.name;

Solution

  1. Step 1: Understand ToDictionary usage

    ToDictionary converts a list to a dictionary by specifying key and value selectors.
  2. Step 2: Check each option

    var dict = users.ToDictionary(u => u.id, u => u.name); correctly maps id to name. var dict = new Dictionary<int, string>(); foreach(var u in users) dict.Add(u.name, u.id); swaps key and value and uses wrong types. var dict = users.Select(u => new { u.id, u.name }).ToList(); creates a list, not dictionary. var dict = new Dictionary<string, int>(); foreach(var u in users) dict[u.id] = u.name; has wrong dictionary types and indexer usage.
  3. Final Answer:

    var dict = users.ToDictionary(u => u.id, u => u.name); -> Option A
  4. Quick Check:

    ToDictionary creates dictionary from list [OK]
Hint: Use ToDictionary with key and value selectors [OK]
Common Mistakes:
  • Swapping key and value in Add
  • Using Select instead of ToDictionary
  • Mismatching dictionary key-value types