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

Property patterns in C Sharp (C#) - Mini Project: Build & Apply

Choose your learning style10 modes available
Using Property Patterns in C#
📖 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

  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