📖 Scenario: You are building a simple program to check if a person is an adult living in a specific city. You will use property patterns to make your code clear and easy to read.
🎯 Goal: Create a Person class with properties, then use property patterns to check if a person is an adult living in "New York".
📋 What You'll Learn
Create a Person class with Name, Age, and City properties
Create an instance of Person with specific values
Use a property pattern in an if statement to check if the person is at least 18 years old and lives in "New York"
Print a message based on the property pattern check
💡 Why This Matters
🌍 Real World
Property patterns help write clear and readable code when checking multiple properties of objects, common in user data validation or filtering.
💼 Career
Understanding property patterns is useful for writing maintainable C# code in jobs involving backend development, data processing, or any object-oriented programming tasks.
Progress0 / 4 steps
1
Create the Person class
Create a public class called Person with three public properties: Name of type string, Age of type int, and City of type string.
C Sharp (C#)
Hint
Use public class Person and add three properties with get and set.
2
Create a Person instance
Create a variable called person and assign it a new Person object with Name set to "Alice", Age set to 20, and City set to "New York".
C Sharp (C#)
Hint
Use object initializer syntax to set the properties when creating person.
3
Use property pattern to check person details
Write an if statement that uses a property pattern to check if person has Age greater than or equal to 18 and City equal to "New York".
C Sharp (C#)
Hint
Use the is keyword with a property pattern inside the if condition.
4
Print the result
Add an else block to print "Person does not meet the criteria." if the property pattern check fails. Then run the program to see the output.
C Sharp (C#)
Hint
Use an else block with a Console.WriteLine to print the alternative message.
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
Step 1: Understand what property patterns do
Property patterns allow checking the values of properties inside an object directly in conditions.
Step 2: Identify the main use
This helps write clearer and simpler code when you want to check multiple properties without nested ifs.
Final Answer:
To check multiple properties of an object in a clear and concise way -> Option C
Quick Check:
Property patterns simplify property checks = B [OK]
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
Step 1: Recall property pattern syntax
Property patterns use curly braces with property name and condition inside, like { Age: > 18 }.
Step 2: Match with options
case { Age: > 18 }: matches this syntax exactly, others use invalid or incorrect forms.
Final Answer:
case { Age: > 18 }: -> Option B
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
Step 1: Check the Age property of the Person object
The person has Age = 25.
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".
Final Answer:
Adult -> Option A
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
Step 1: Check property pattern syntax
Property patterns require a colon between property name and condition, like { Price: > 10 }.
Step 2: Identify the error in the code
The code uses { Price > 10 } which is invalid syntax.
Final Answer:
The property pattern syntax is incorrect; it should be { Price: > 10 } -> Option D
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
Step 1: Understand correct property pattern syntax with ranges
Property patterns use colon and conditions like { Age: < 13 } and combine with and for ranges.
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).
Final Answer:
persons.Select(p => p switch { { Age: < 13 } => "Child", { Age: >= 13 and <= 19 } => "Teen", { Age: >= 20 and <= 64 } => "Adult", _ => "Senior" }) -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.