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

Property 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 object has a property Age equal to 30 using a property pattern.

C Sharp (C#)
if (person is { Age: [1] })
{
    Console.WriteLine("Age is 30");
}
Drag options to blanks, or click blank then click option'
A30
BAge
Cperson.Age
Dage
Attempts:
3 left
💡 Hint
Common Mistakes
Using the property name instead of the value.
Trying to access the property outside the pattern.
2fill in blank
medium

Complete the code to check if the object has a Name property equal to "Alice" using a property pattern.

C Sharp (C#)
if (person is { Name: [1] })
{
    Console.WriteLine("Name is Alice");
}
Drag options to blanks, or click blank then click option'
AName
B"Bob"
CAlice
D"Alice"
Attempts:
3 left
💡 Hint
Common Mistakes
Not using quotes around the string value.
Using the property name instead of the value.
3fill in blank
hard

Fix the error in the property pattern to correctly check if the object has a property IsActive set to true.

C Sharp (C#)
if (user is { IsActive: [1] })
{
    Console.WriteLine("User is active");
}
Drag options to blanks, or click blank then click option'
Atrue
B"true"
CTrue
DisActive
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around boolean values.
Capitalizing boolean values incorrectly.
4fill in blank
hard

Fill both blanks to check if the object has properties Age greater than 18 and Name equal to "John" using property patterns.

C Sharp (C#)
if (person is { Age: [1], Name: [2] })
{
    Console.WriteLine("Adult named John");
}
Drag options to blanks, or click blank then click option'
A> 18
B"John"
D< 18
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect comparison operators.
Not quoting string values.
5fill in blank
hard

Fill all three blanks to create a property pattern that matches an object with Age less than 65, Name starting with 'A', and IsActive true.

C Sharp (C#)
if (employee is { Age: [1], Name: [2], IsActive: [3] })
{
    Console.WriteLine("Active employee with name starting with A and age under 65");
}
Drag options to blanks, or click blank then click option'
A< 65
Btrue
Cvar n when n.StartsWith("A")
D> 65
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect operators for age comparison.
Not using var and when for string pattern.
Misplacing boolean value syntax.

Practice

(1/5)
1. What is the main purpose of using property patterns in C#?
easy
A. To declare new properties in a class
B. To create new objects with default property values
C. To check multiple properties of an object in a clear and concise way
D. To override methods based on property values

Solution

  1. Step 1: Understand what property patterns do

    Property patterns allow checking the values of properties inside an object directly in conditions.
  2. Step 2: Identify the main use

    This helps write clearer and simpler code when you want to check multiple properties without nested ifs.
  3. Final Answer:

    To check multiple properties of an object in a clear and concise way -> Option C
  4. Quick Check:

    Property patterns simplify property checks = B [OK]
Hint: Property patterns simplify checking object properties [OK]
Common Mistakes:
  • Confusing property patterns with property declaration
  • Thinking property patterns create objects
  • Assuming property patterns override methods
2. Which of the following is the correct syntax to use a property pattern in a switch expression for an object person with a property Age?
easy
A. case (Age > 18):
B. case { Age: > 18 }:
C. case Age > 18:
D. case person.Age > 18:

Solution

  1. Step 1: Recall property pattern syntax

    Property patterns use curly braces with property name and condition inside, like { Age: > 18 }.
  2. Step 2: Match with options

    case { Age: > 18 }: matches this syntax exactly, others use invalid or incorrect forms.
  3. Final Answer:

    case { Age: > 18 }: -> Option B
  4. Quick Check:

    Property pattern syntax uses braces = A [OK]
Hint: Use braces with property name and condition for property patterns [OK]
Common Mistakes:
  • Using parentheses instead of braces
  • Writing property condition without braces
  • Referencing object name inside case
3. What will be the output of the following code?
record Person(string Name, int Age);

Person p = new("Alice", 25);

string result = p switch
{
    { Age: < 18 } => "Minor",
    { Age: >= 18 and < 65 } => "Adult",
    _ => "Senior"
};

Console.WriteLine(result);
medium
A. Adult
B. Minor
C. Senior
D. Compilation error

Solution

  1. Step 1: Check the Age property of the Person object

    The person has Age = 25.
  2. Step 2: Match Age with switch cases

    25 is not less than 18, so first case fails. 25 is >= 18 and < 65, so second case matches and returns "Adult".
  3. Final Answer:

    Adult -> Option A
  4. Quick Check:

    Age 25 fits adult range = A [OK]
Hint: Match property values carefully in switch cases [OK]
Common Mistakes:
  • Confusing range conditions
  • Assuming default case runs first
  • Ignoring property pattern syntax
4. Identify the error in the following code using property patterns:
record Product(string Name, decimal Price);

Product p = new("Book", 15.99m);

if (p is { Price > 10 })
{
    Console.WriteLine("Expensive");
}
medium
A. The if statement requires parentheses around the pattern
B. The decimal literal should not have 'm' suffix
C. The record declaration is missing a semicolon
D. The property pattern syntax is incorrect; it should be { Price: > 10 }

Solution

  1. Step 1: Check property pattern syntax

    Property patterns require a colon between property name and condition, like { Price: > 10 }.
  2. Step 2: Identify the error in the code

    The code uses { Price > 10 } which is invalid syntax.
  3. Final Answer:

    The property pattern syntax is incorrect; it should be { Price: > 10 } -> Option D
  4. Quick Check:

    Property patterns need colon between property and condition = D [OK]
Hint: Use colon between property and condition in patterns [OK]
Common Mistakes:
  • Omitting colon in property pattern
  • Misunderstanding decimal literal suffix
  • Adding unnecessary parentheses
5. Given a list of Person objects, how can you use property patterns in a switch expression to classify each person as "Child" if Age < 13, "Teen" if Age between 13 and 19, "Adult" if Age between 20 and 64, and "Senior" otherwise? Which code snippet correctly implements this?
hard
A. persons.Select(p => p switch { { Age: < 13 } => "Child", { Age: >= 13 and <= 19 } => "Teen", { Age: >= 20 and <= 64 } => "Adult", _ => "Senior" })
B. persons.Select(p => p switch { Age < 13 => "Child", Age >= 13 and Age <= 19 => "Teen", Age >= 20 and Age <= 64 => "Adult", _ => "Senior" })
C. persons.Select(p => p switch { { Age < 13 } => "Child", { Age >= 13 and Age <= 19 } => "Teen", { Age >= 20 and Age <= 64 } => "Adult", _ => "Senior" })
D. persons.Select(p => p switch { { Age: < 13 } => "Child", { Age: > 13 and < 20 } => "Teen", { Age: >= 20 and < 65 } => "Adult", _ => "Senior" })

Solution

  1. Step 1: Understand correct property pattern syntax with ranges

    Property patterns use colon and conditions like { Age: < 13 } and combine with and for ranges.
  2. Step 2: Check each option for correct syntax and ranges

    persons.Select(p => p switch { { Age: < 13 } => "Child", { Age: >= 13 and <= 19 } => "Teen", { Age: >= 20 and <= 64 } => "Adult", _ => "Senior" }) uses correct syntax and inclusive ranges matching the problem. persons.Select(p => p switch { Age < 13 => "Child", Age >= 13 and Age <= 19 => "Teen", Age >= 20 and Age <= 64 => "Adult", _ => "Senior" }) lacks braces and colons. persons.Select(p => p switch { { Age < 13 } => "Child", { Age >= 13 and Age <= 19 } => "Teen", { Age >= 20 and Age <= 64 } => "Adult", _ => "Senior" }) misplaces comparison operators inside braces. persons.Select(p => p switch { { Age: < 13 } => "Child", { Age: > 13 and < 20 } => "Teen", { Age: >= 20 and < 65 } => "Adult", _ => "Senior" }) uses exclusive Teen range (should include 13 and 19).
  3. Final Answer:

    persons.Select(p => p switch { { Age: < 13 } => "Child", { Age: >= 13 and <= 19 } => "Teen", { Age: >= 20 and <= 64 } => "Adult", _ => "Senior" }) -> Option A
  4. Quick Check:

    Correct property pattern syntax with proper ranges = C [OK]
Hint: Use braces and colon with 'and' for combined property conditions [OK]
Common Mistakes:
  • Omitting braces or colon in property patterns
  • Using incorrect range operators or missing boundaries
  • Mixing syntax from other languages
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