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

List patterns in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the list starts with 1, 2, 3 using list pattern.

C Sharp (C#)
int[] numbers = {1, 2, 3, 4, 5};
if (numbers is [1]) {
    Console.WriteLine("Starts with 1, 2, 3");
}
Drag options to blanks, or click blank then click option'
A[1, 2, 3, ..]
B[1, 2, 3]
C[.., 1, 2, 3]
D[1, .., 3]
Attempts:
3 left
💡 Hint
Common Mistakes
Using exact length pattern without .. causes mismatch if list is longer.
Placing .. in the wrong position.
2fill in blank
medium

Complete the code to check if the list has exactly two elements 5 and 10.

C Sharp (C#)
int[] values = {5, 10};
if (values is [1]) {
    Console.WriteLine("Exactly 5 and 10");
}
Drag options to blanks, or click blank then click option'
A[5, 10]
B[5, ..]
C[.., 10]
D[5]
Attempts:
3 left
💡 Hint
Common Mistakes
Using .. which allows extra elements.
Using a single element pattern.
3fill in blank
hard

Fix the error in the pattern to check if the list starts with 0 and ends with 9.

C Sharp (C#)
int[] arr = {0, 1, 2, 3, 9};
if (arr is [1]) {
    Console.WriteLine("Starts with 0 and ends with 9");
}
Drag options to blanks, or click blank then click option'
A[0, 9]
B[0, .., 9]
C[.., 0, 9]
D[0, ..]
Attempts:
3 left
💡 Hint
Common Mistakes
Using pattern without .. which matches only two elements.
Placing .. incorrectly.
4fill in blank
hard

Fill both blanks to match a list starting with 7 and having any elements after.

C Sharp (C#)
int[] data = {7, 8, 9};
if (data is [1]) {
    Console.WriteLine("Starts with 7");
}

if (data is [2]) {
    Console.WriteLine("Starts with 7 and 8");
}
Drag options to blanks, or click blank then click option'
A[7, ..]
B[7]
C[7, 8, ..]
D[.., 7]
Attempts:
3 left
💡 Hint
Common Mistakes
Using patterns without .. which require exact length.
Confusing the order of elements.
5fill in blank
hard

Fill all three blanks to create a dictionary from a list where keys are uppercase strings and values are their lengths if length > 3.

C Sharp (C#)
var words = new List<string> {"apple", "bat", "carrot", "dog"};
var result = words.ToDictionary(
    [1] => [2].ToUpper(),
    [3] => [3].Length
).Where(kv => kv.Value > 3).ToDictionary(kv => kv.Key, kv => kv.Value);
Drag options to blanks, or click blank then click option'
Aword
Ditem
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names causing errors.
Not converting to uppercase for keys.

Practice

(1/5)
1. What does the list pattern [] match in C#?
easy
A. An empty list with no elements
B. A list with exactly one element
C. A list with two or more elements
D. Any list regardless of elements

Solution

  1. Step 1: Understand the empty list pattern

    The pattern [] is used to match lists that have no elements at all.
  2. Step 2: Compare with other list patterns

    Patterns like [var x] match one element, and [var x, .. var rest] match lists with multiple elements, so they don't match empty lists.
  3. Final Answer:

    An empty list with no elements -> Option A
  4. Quick Check:

    Empty list = [] pattern [OK]
Hint: Empty list pattern is just empty brackets [] [OK]
Common Mistakes:
  • Confusing [] with single element pattern
  • Thinking [] matches any list
  • Assuming [] matches lists with elements
2. Which of the following is the correct syntax to match a list with exactly one element using list patterns in C#?
easy
A. [var x, .. var rest]
B. [var x]
C. [.. var rest]
D. []

Solution

  1. Step 1: Identify the pattern for one element

    The pattern [var x] matches a list with exactly one element, binding it to x.
  2. Step 2: Understand other patterns

    [var x, .. var rest] matches lists with at least one element plus the rest, [.. var rest] matches any list, and [] matches empty lists.
  3. Final Answer:

    [var x] -> Option B
  4. Quick Check:

    One element list = [var x] [OK]
Hint: One element list uses [var x] syntax [OK]
Common Mistakes:
  • Using [var x, .. var rest] for single element
  • Using [] for single element list
  • Confusing .. var rest with single element
3. What is the output of this C# code snippet using list patterns?
var list = new List<int> { 5, 10, 15 };
switch (list)
{
    case []:
        Console.WriteLine("Empty");
        break;
    case [var x]:
        Console.WriteLine($"One element: {x}");
        break;
    case [var x, .. var rest]:
        Console.WriteLine($"First: {x}, Rest count: {rest.Count}");
        break;
}
medium
A. Empty
B. One element: 5
C. No match
D. First: 5, Rest count: 2

Solution

  1. Step 1: Analyze the list contents

    The list has three elements: 5, 10, and 15.
  2. Step 2: Match the list pattern cases

    The first case matches empty list, which is false. The second case matches exactly one element, which is false. The third case matches a list with at least one element: [var x, .. var rest]. Here, x is 5, and rest contains 10 and 15, so count is 2.
  3. Final Answer:

    First: 5, Rest count: 2 -> Option D
  4. Quick Check:

    List with 3 elements matches [x, ..rest] pattern [OK]
Hint: More than one element matches [x, ..rest] pattern [OK]
Common Mistakes:
  • Choosing empty or one element case incorrectly
  • Miscounting rest elements
  • Ignoring pattern order in switch
4. Identify the error in this C# code using list patterns:
var numbers = new List<int> { 1, 2, 3 };
if (numbers is [var first, var second])
{
    Console.WriteLine($"First: {first}, Second: {second}");
}
medium
A. The variable names first and second are invalid
B. List patterns cannot be used with List<int>
C. The pattern [var first, var second] requires exactly two elements, but list has three
D. Missing else block after if

Solution

  1. Step 1: Understand the pattern [var first, var second]

    This pattern matches lists with exactly two elements, binding them to first and second.
  2. Step 2: Check the list size

    The list has three elements: 1, 2, and 3, so it does not match the pattern requiring exactly two elements.
  3. Final Answer:

    The pattern [var first, var second] requires exactly two elements, but list has three -> Option C
  4. Quick Check:

    Pattern length must match list length exactly [OK]
Hint: Pattern length must match list length exactly [OK]
Common Mistakes:
  • Assuming pattern matches partial list
  • Thinking variable names cause error
  • Ignoring list size in pattern matching
5. Given a list of integers, how can you use list patterns in C# to check if the list starts with 1 and has at least two elements? Choose the correct pattern.
hard
A. [1, var second, .. var rest]
B. [var first, 1, .. var rest]
C. [1, .. var rest]
D. [.. var rest, 1]

Solution

  1. Step 1: Understand the requirement

    The list must start with 1, then have a second element, and then zero or more elements after that (at least two elements total).
  2. Step 2: Analyze each pattern

    [1, var second, .. var rest]: [1, var second, .. var rest] matches a list starting with 1, then a second element, then the rest (zero or more). This fits the requirement.
    [var first, 1, .. var rest]: [var first, 1, .. var rest] matches lists where the second element is 1, not the first.
    [1, .. var rest]: [1, .. var rest] matches lists starting with 1 but allows zero or more elements after, so it matches lists with only one element too.
    [.. var rest, 1]: [.. var rest, 1] matches lists ending with 1, not starting.
  3. Final Answer:

    [1, var second, .. var rest] -> Option A
  4. Quick Check:

    Start with 1 and at least two elements = [1, var second, .. rest] [OK]
Hint: Start with 1 and two elements uses [1, var second, .. rest] [OK]
Common Mistakes:
  • Confusing element positions in pattern
  • Using patterns that allow only one element
  • Matching end of list instead of start
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard