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

Pattern matching in switch 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 match the integer 5 in the switch expression.

C Sharp (C#)
int number = 5;
switch (number)
{
    case [1]:
        Console.WriteLine("Number is five");
        break;
    default:
        Console.WriteLine("Number is not five");
        break;
}
Drag options to blanks, or click blank then click option'
Aint
B"5"
Cnumber
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string "5" instead of the integer 5.
Using the variable name instead of a constant value.
2fill in blank
medium

Complete the code to use pattern matching to check if the object is a string.

C Sharp (C#)
object obj = "hello";
switch (obj)
{
    case [1] s:
        Console.WriteLine($"String with length {s.Length}");
        break;
    default:
        Console.WriteLine("Not a string");
        break;
}
Drag options to blanks, or click blank then click option'
Astring
Bint
Cbool
Ddouble
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong type like int or bool.
Forgetting to include the variable name after the type.
3fill in blank
hard

Fix the error in the switch expression to correctly match a nullable int with value 10.

C Sharp (C#)
int? number = 10;
switch (number)
{
    case [1]:
        Console.WriteLine("Number is ten");
        break;
    default:
        Console.WriteLine("Number is not ten");
        break;
}
Drag options to blanks, or click blank then click option'
Aint n when n == 10
B10
Cint? n when n == 10
Dnull
Attempts:
3 left
💡 Hint
Common Mistakes
Using just 10 without a pattern.
Using int? n which matches nullable but cannot use when condition properly.
4fill in blank
hard

Fill both blanks to create a switch expression that returns a description for the shape object.

C Sharp (C#)
object shape = new Circle();
string description = shape switch
{
    [1] => "It's a circle",
    [2] => "It's a square",
    _ => "Unknown shape"
};
Drag options to blanks, or click blank then click option'
ACircle c
BSquare s
CTriangle t
DRectangle r
Attempts:
3 left
💡 Hint
Common Mistakes
Using types that don't match the shape object.
Omitting the variable name after the type.
5fill in blank
hard

Fill all three blanks to create a switch expression that returns a message based on the input object type and value.

C Sharp (C#)
object input = 42;
string message = input switch
{
    [1] when [2] > 40 => "Large integer",
    [3] => "Not a large integer",
    _ => "Unknown"
};
Drag options to blanks, or click blank then click option'
Aint n
Bn
Cstring s
Ddouble d
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name in the when condition that is not declared in the pattern.
Using the wrong type patterns.

Practice

(1/5)
1. What does pattern matching in a switch statement primarily help you do in C#?
easy
A. Check an object's type and properties in a clear way
B. Loop through collections more efficiently
C. Declare variables with less code
D. Handle exceptions automatically

Solution

  1. Step 1: Understand pattern matching purpose

    Pattern matching in switch lets you test an object's type and properties clearly.
  2. Step 2: Compare with other options

    Looping, variable declaration, and exception handling are unrelated to pattern matching in switch.
  3. Final Answer:

    Check an object's type and properties in a clear way -> Option A
  4. Quick Check:

    Pattern matching = type and property checks [OK]
Hint: Pattern matching checks types and conditions clearly [OK]
Common Mistakes:
  • Confusing pattern matching with loops
  • Thinking it handles exceptions
  • Believing it declares variables automatically
2. Which of the following is the correct syntax to match an integer variable num equal to 10 using pattern matching in a switch expression?
easy
A. case int n when n == 10:
B. case int n == 10:
C. case int n => 10:
D. case int n is 10:

Solution

  1. Step 1: Recall correct pattern matching syntax

    To match a value with a condition, use case Type variable when condition:.
  2. Step 2: Check each option

    case int n when n == 10: uses when n == 10, which is correct. Others use invalid syntax.
  3. Final Answer:

    case int n when n == 10: -> Option A
  4. Quick Check:

    Use 'when' for conditions in pattern matching [OK]
Hint: Use 'when' keyword for conditions in switch patterns [OK]
Common Mistakes:
  • Using '==' directly after case without 'when'
  • Using '=>' or 'is' incorrectly in case
  • Omitting the variable name
3. What will be the output of this C# code?
object obj = 42;
switch (obj)
{
    case int n when n > 40:
        Console.WriteLine("Greater than 40");
        break;
    case int n:
        Console.WriteLine("Integer");
        break;
    default:
        Console.WriteLine("Other");
        break;
}
medium
A. Integer
B. Other
C. Greater than 40
D. No output (compile error)

Solution

  1. Step 1: Identify the object type and value

    obj is an integer with value 42.
  2. Step 2: Evaluate switch cases in order

    First case matches int n when n > 40, which is true for 42, so prints "Greater than 40" and breaks.
  3. Final Answer:

    Greater than 40 -> Option C
  4. Quick Check:

    Pattern with 'when' matched first [OK]
Hint: Check cases top to bottom; first match runs [OK]
Common Mistakes:
  • Ignoring the 'when' condition
  • Assuming second case runs first
  • Thinking default runs for int
4. Identify the error in this switch statement using pattern matching:
object val = "hello";
switch (val)
{
    case string s when s.Length > 3
        Console.WriteLine("Long string");
        break;
    default:
        Console.WriteLine("Other");
        break;
}
medium
A. Cannot use 'when' with string type
B. Missing colon ':' after case pattern
C. Missing parentheses around condition
D. Incorrect variable name in case

Solution

  1. Step 1: Check switch case syntax

    Each case pattern must end with a colon ':' before the statements.
  2. Step 2: Locate missing colon

    The case line lacks ':' after when s.Length > 3, causing syntax error.
  3. Final Answer:

    Missing colon ':' after case pattern -> Option B
  4. Quick Check:

    Case patterns need ':' after condition [OK]
Hint: Always put ':' after case pattern line [OK]
Common Mistakes:
  • Forgetting ':' after case pattern
  • Adding parentheses around 'when' condition
  • Thinking 'when' can't be used with strings
5. Given a list of objects items containing integers and strings, how would you use pattern matching in a switch expression to return a new list of strings where:
- Integers greater than 10 become "Big number"
- Strings longer than 5 characters become "Long text"
- All others become "Other"?

Which code snippet correctly implements this?
hard
A. items.Select(item => item switch { int n when n > 10: "Big number", string s when s.Length > 5: "Long text", _ => "Other" }).ToList();
B. items.Select(item => switch (item) { case int n if n > 10: "Big number"; case string s if s.Length > 5: "Long text"; default: "Other"; }).ToList();
C. items.Select(item => item switch { int n if n > 10: "Big number", string s if s.Length > 5: "Long text", _ => "Other" }).ToList();
D. items.Select(item => item switch { int n when n > 10 => "Big number", string s when s.Length > 5 => "Long text", _ => "Other" }).ToList();

Solution

  1. Step 1: Understand switch expression syntax

    Switch expressions use '=>' for cases, and 'when' for conditions.
  2. Step 2: Check each option's syntax

    items.Select(item => item switch { int n when n > 10 => "Big number", string s when s.Length > 5 => "Long text", _ => "Other" }).ToList(); uses correct 'item switch { case => result }' with 'when' and '=>'. Other options use invalid syntax ('switch' inside lambda or 'if' instead of 'when'). items.Select(item => item switch { int n when n > 10: "Big number", string s when s.Length > 5: "Long text", _ => "Other" }).ToList(); uses ':' instead of '=>', which is invalid in switch expressions.
  3. Final Answer:

    items.Select(item => item switch { int n when n > 10 => "Big number", string s when s.Length > 5 => "Long text", _ => "Other" }).ToList(); -> Option D
  4. Quick Check:

    Switch expressions use '=>' and 'when' [OK]
Hint: Use '=>' and 'when' in switch expressions for conditions [OK]
Common Mistakes:
  • Using ':' instead of '=>' in switch expressions
  • Using 'if' instead of 'when' for conditions
  • Trying to put 'switch' keyword inside lambda
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