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

Collection initialization syntax 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 collection initialization syntax in C#?
It is a way to create and fill a collection (like a list or dictionary) in one simple step using curly braces {} with values inside.
Click to reveal answer
beginner
How do you initialize a List of integers with values 1, 2, and 3 using collection initialization syntax?
You write: var numbers = new List<int> { 1, 2, 3 }; This creates the list and adds the numbers in one line.
Click to reveal answer
intermediate
Can you use collection initialization syntax with dictionaries? How?
Yes. You use curly braces with key-value pairs inside, like: var dict = new Dictionary { {"a", 1}, {"b", 2} };
Click to reveal answer
intermediate
What happens if you try to use collection initialization syntax on a class without an Add method?
It will cause a compile error because collection initialization requires the class to have an Add method to add items.
Click to reveal answer
beginner
Why is collection initialization syntax useful?
It makes code shorter and easier to read by combining creation and filling of collections in one step.
Click to reveal answer
Which of the following is the correct way to initialize a List of strings with "apple" and "banana" using collection initialization syntax?
Avar fruits = new List<string> { "apple", "banana" };
Bvar fruits = new List<string>("apple", "banana");
Cvar fruits = new List<string>.Add("apple", "banana");
Dvar fruits = new List<string> = { "apple", "banana" };
What method must a class have to support collection initialization syntax?
AStart()
BInit()
CCreate()
DAdd()
How do you initialize a Dictionary with keys "x" and "y" and values 10 and 20 respectively?
Avar dict = new Dictionary<string, int> { "x": 10, "y": 20 };
Bvar dict = new Dictionary<string, int> { ("x", 10), ("y", 20) };
Cvar dict = new Dictionary<string, int> { {"x", 10}, {"y", 20} };
Dvar dict = new Dictionary<string, int> { "x" => 10, "y" => 20 };
What will happen if you try to use collection initialization syntax on a class without an Add method?
AIt will work fine
BCompile error
CRuntime error
DIt will ignore the initialization
Which of these is NOT a benefit of collection initialization syntax?
AAutomatically sorts the collection
BShorter code
CEasier to read
DCombines creation and filling
Explain how collection initialization syntax works in C# and give an example with a List.
Think about how you can write less code to make a list with items.
You got /3 concepts.
    Describe the requirements for a class to support collection initialization syntax.
    What method does the compiler call to add items?
    You got /3 concepts.

      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