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

Collection initialization syntax 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 initialize a list of integers with values 1, 2, and 3.

C Sharp (C#)
var numbers = new List<int> [1] 1, 2, 3 [2];
Drag options to blanks, or click blank then click option'
A{
B[
C}
D)
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses () instead of curly braces {} for collection initialization.
Using square brackets [] which are for arrays, not collections.
2fill in blank
medium

Complete the code to initialize a dictionary with keys "apple" and "banana" and values 1 and 2.

C Sharp (C#)
var fruitCounts = new Dictionary<string, int> [1] {"apple", 1}, {"banana", 2} [2];
Drag options to blanks, or click blank then click option'
A{
B[
C}
D)
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses () instead of curly braces {} for dictionary initialization.
Using square brackets [] which are not valid for dictionary initializers.
3fill in blank
hard

Fix the error in the code to correctly initialize a list of strings with "red", "green", and "blue".

C Sharp (C#)
var colors = new List<string> [1] "red", "green", "blue" [2];
Drag options to blanks, or click blank then click option'
A[
B{
C}
D)
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets [] which are for arrays, not collections.
Using parentheses () which are for method calls, not initializers.
4fill in blank
hard

Fill both blanks to initialize a dictionary with keys 1 and 2 and values "one" and "two".

C Sharp (C#)
var numbers = new Dictionary<int, string> [1] {1, "one"}, {2, "two"} [2];
Drag options to blanks, or click blank then click option'
A{
B[
C}
D)
Attempts:
3 left
💡 Hint
Common Mistakes
Using square brackets [] or parentheses () instead of curly braces.
Forgetting to close the initializer with the correct brace.
5fill in blank
hard

Fill the two blanks to initialize a list of tuples with (1, "one"), (2, "two"), and (3, "three").

C Sharp (C#)
var list = new List<(int, string)> [1] (1, "one"), (2, "two"), (3, "three") [2];
Drag options to blanks, or click blank then click option'
A{
B}
C;
D)
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses instead of curly braces for the initializer.

Practice

(1/5)
1. What does collection initialization syntax in C# allow you to do?
var list = new List<int> { 1, 2, 3 };
easy
A. Only create an empty collection
B. Create and fill a collection in one step
C. Fill a collection after creating it separately
D. Create a collection without specifying type

Solution

  1. Step 1: Understand collection initialization

    Collection initialization lets you create a collection and add items to it in one line.
  2. Step 2: Analyze the example code

    The code new List<int> { 1, 2, 3 } creates a list and fills it with 1, 2, and 3 immediately.
  3. Final Answer:

    Create and fill a collection in one step -> Option B
  4. Quick Check:

    Collection initialization = create + fill [OK]
Hint: Remember: initialization means create and fill together [OK]
Common Mistakes:
  • Thinking it only creates empty collections
  • Confusing initialization with adding items later
  • Assuming type is optional in initialization
2. Which of the following is the correct syntax to initialize a dictionary with keys and values in C#?
easy
A. var dict = new Dictionary { 1: "One", 2: "Two" };
B. var dict = new Dictionary (1: "One", 2: "Two");
C. var dict = new Dictionary { (1, "One"), (2, "Two") };
D. var dict = new Dictionary { {1, "One"}, {2, "Two"} };

Solution

  1. Step 1: Recall dictionary initialization syntax

    Dictionaries use curly braces with key-value pairs inside another set of braces: { {key, value}, ... }.
  2. Step 2: Check each option

    var dict = new Dictionary { {1, "One"}, {2, "Two"} }; uses correct syntax with nested braces for each pair. Others use invalid syntax for C# dictionaries.
  3. Final Answer:

    var dict = new Dictionary { {1, "One"}, {2, "Two"} }; -> Option D
  4. Quick Check:

    Dictionary init = nested braces for pairs [OK]
Hint: Use double braces for dictionary key-value pairs [OK]
Common Mistakes:
  • Using colon instead of comma between key and value
  • Trying to use parentheses instead of braces
  • Confusing dictionary syntax with object initializers
3. What will be the output of the following C# code?
var set = new HashSet<int> { 1, 2, 2, 3 };
Console.WriteLine(set.Count);
medium
A. 3
B. Runtime error
C. 2
D. 4

Solution

  1. Step 1: Understand HashSet behavior

    A HashSet stores unique elements only, so duplicates are ignored.
  2. Step 2: Analyze the initialization

    The set is initialized with {1, 2, 2, 3}, but the duplicate '2' is ignored, so the set contains 3 unique elements.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    HashSet ignores duplicates = count 3 [OK]
Hint: HashSet counts unique items only [OK]
Common Mistakes:
  • Counting duplicates as separate elements
  • Expecting a runtime error due to duplicates
  • Confusing HashSet with List behavior
4. Identify the error in this collection initialization:
var list = new List<int> { 1, 2, "3" };
medium
A. Using parentheses instead of braces
B. Missing semicolon at the end
C. Mixing int and string types in List<int>
D. List cannot be initialized with values

Solution

  1. Step 1: Check the List type and values

    The list is declared as List<int>, so all elements must be integers.
  2. Step 2: Identify the incorrect value

    The value "3" is a string, not an int, causing a type mismatch error.
  3. Final Answer:

    Mixing int and string types in List<int> -> Option C
  4. Quick Check:

    List<int> must contain only ints [OK]
Hint: All items must match the collection's declared type [OK]
Common Mistakes:
  • Assuming implicit conversion from string to int
  • Ignoring type mismatch errors
  • Thinking semicolon or braces are the problem
5. You want to initialize a dictionary where keys are strings and values are lists of integers. Which is the correct way to do this in C#?
hard
A. var dict = new Dictionary { { "a", new List<int> {1, 2} }, { "b", new List<int> {3, 4} } };
B. var dict = new Dictionary { { "a", {1, 2} }, { "b", {3, 4} } };
C. var dict = new Dictionary { ( "a", [1, 2] ), ( "b", [3, 4] ) };
D. var dict = new Dictionary { "a": [1, 2], "b": [3, 4] };

Solution

  1. Step 1: Understand nested collection initialization

    Each dictionary value is a List<int>, so you must create new List<int> instances inside the dictionary initializer.
  2. Step 2: Check syntax correctness

    var dict = new Dictionary { { "a", new List<int> {1, 2} }, { "b", new List<int> {3, 4} } }; correctly uses nested initializers: dictionary with key-value pairs, where values are new List<int> with their own initializers.
  3. Final Answer:

    var dict = new Dictionary { { "a", new List<int> {1, 2} }, { "b", new List<int> {3, 4} } }; -> Option A
  4. Quick Check:

    Nested collections need explicit new List<int> [OK]
Hint: Use 'new' for nested collections inside dictionary [OK]
Common Mistakes:
  • Omitting 'new List<int>' for nested lists
  • Using parentheses or brackets incorrectly
  • Trying to use colon syntax inside C# initializers