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

Pattern matching in switch in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is pattern matching in a switch statement?
Pattern matching in a switch statement lets you check an expression against different patterns, not just fixed values. It helps you test types, properties, or conditions directly in each case.
Click to reveal answer
beginner
How do you match a type in a switch case using pattern matching?
You write the type name followed by a variable name, like case int number:. This matches if the value is an int and assigns it to number.
Click to reveal answer
intermediate
What does the when keyword do in a switch case?
The when keyword adds an extra condition to a case. The case matches only if the pattern matches and the when condition is true.
Click to reveal answer
intermediate
Explain the difference between case int n: and case int n when n > 0:.
case int n: matches any integer and assigns it to n. case int n when n > 0: matches only positive integers because of the when condition.
Click to reveal answer
beginner
Can you use pattern matching in switch expressions as well as statements?
Yes! Pattern matching works in both switch statements and switch expressions, allowing concise and readable code for selecting values based on patterns.
Click to reveal answer
What does case string s: do in a switch statement?
AMatches any string and assigns it to s
BMatches only empty strings
CMatches any integer and assigns it to s
DMatches null values only
Which keyword adds an extra condition to a switch case pattern?
Aif
Bwhere
Cwhen
Dcase
What happens if no pattern matches in a switch statement with pattern matching?
AThe switch statement is skipped
BThe program crashes
CThe first case runs anyway
DThe default case runs if provided
Which of these is a valid pattern matching case in C#?
Acase n int:
Bcase int n when n < 10:
Ccase (int) n:
Dcase int:
Can pattern matching in switch check properties of an object?
AYes, using property patterns
BOnly with loops
COnly with if statements
DNo, only types
Describe how pattern matching improves switch statements in C#.
Think about how you can check more than just fixed values.
You got /4 concepts.
    Explain how to use the 'when' keyword in a switch case with an example.
    It adds extra conditions to cases.
    You got /4 concepts.

      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