Challenge - 5 Problems
Pattern Matching Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of pattern matching with type check
What is the output of this C# code using pattern matching in a switch expression?
C Sharp (C#)
object obj = 42; string result = obj switch { int i when i > 40 => "Greater than 40", int i => "Integer", string s => "String", _ => "Other" }; System.Console.WriteLine(result);
Attempts:
2 left
💡 Hint
Look at the order of patterns and the value of obj.
✗ Incorrect
The object is an int with value 42, which matches the first pattern 'int i when i > 40', so the output is 'Greater than 40'.
❓ Predict Output
intermediate2:00remaining
Pattern matching with property check in switch
What will this C# code print when using pattern matching on a record type?
C Sharp (C#)
record Person(string Name, int Age); Person p = new("Alice", 30); string category = p switch { { Age: < 18 } => "Minor", { Age: >= 18 and < 65 } => "Adult", { Age: >= 65 } => "Senior", _ => "Unknown" }; System.Console.WriteLine(category);
Attempts:
2 left
💡 Hint
Check the Age property value and which pattern it matches.
✗ Incorrect
The Person has Age 30, which fits the pattern 'Age: >= 18 and < 65', so the output is 'Adult'.
🔧 Debug
advanced2:00remaining
Identify the error in pattern matching switch
What error does this C# code produce when compiled?
C Sharp (C#)
object value = "hello"; switch (value) { case int i: System.Console.WriteLine("Integer"); break; case string s when s.Length > 5: System.Console.WriteLine("Long string"); break; case string s: System.Console.WriteLine("String"); break; case null: System.Console.WriteLine("Null"); break; }
Attempts:
2 left
💡 Hint
Look at the order of string cases and their conditions.
✗ Incorrect
No compiler error. The guarded string case handles strings with Length > 5, and the general string case handles other strings. Both patterns are reachable.
📝 Syntax
advanced2:00remaining
Which switch pattern syntax is invalid?
Which of these C# switch case patterns will cause a syntax error?
Attempts:
2 left
💡 Hint
Check the correct keyword for pattern guards in switch cases.
✗ Incorrect
The keyword 'if' is invalid in switch case patterns; 'when' must be used for guards. Option C uses 'if' causing a syntax error.
🚀 Application
expert3:00remaining
Determine the final value after complex pattern matching
Given the following C# code, what is the value of 'result' after execution?
C Sharp (C#)
object data = new List<int> { 1, 2, 3 }; string result = data switch { List<int> list when list.Count == 0 => "Empty list", List<int> list when list.Count > 0 && list[0] == 1 => "Starts with one", List<int> list => "Other list", _ => "Unknown" };
Attempts:
2 left
💡 Hint
Check the list contents and which pattern matches first.
✗ Incorrect
The list has elements and starts with 1, so it matches the second pattern and result is "Starts with one".