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

String interpolation and formatting in C Sharp (C#) - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
String interpolation and formatting
📖 Scenario: You are creating a simple program to display product information in a store. You want to show the product name, quantity, and price in a clear and friendly way.
🎯 Goal: Build a program that uses string interpolation and formatting to display product details with price shown as currency and quantity as a number.
📋 What You'll Learn
Create variables for product name, quantity, and price
Use a format string with string interpolation to combine these variables
Format the price as currency
Format the quantity as a number without decimals
Print the final formatted string
💡 Why This Matters
🌍 Real World
Displaying product information clearly in shopping apps or inventory systems helps customers and staff understand prices and stock easily.
💼 Career
Knowing how to format strings and numbers is essential for creating user-friendly interfaces and reports in software development.
Progress0 / 4 steps
1
Create product variables
Create a string variable called productName and set it to "Chocolate Bar". Create an integer variable called quantity and set it to 5. Create a double variable called price and set it to 1.99.
C Sharp (C#)
Hint

Use string for text, int for whole numbers, and double for decimal numbers.

2
Create a formatted message variable
Create a string variable called message that uses string interpolation to combine productName, quantity, and price. Format price as currency using :C and quantity as a number with no decimals using :N0 inside the interpolation.
C Sharp (C#)
Hint

Use $"...{variable:format}..." to insert variables with formatting.

3
Add a method to create the message
Create a method called CreateMessage that returns a string. Inside it, return the same formatted string using productName, quantity, and price with the same formatting as before. Use the existing variables from the outer scope.
C Sharp (C#)
Hint

Define a method with string CreateMessage() and return the formatted string inside.

4
Print the formatted message
Use Console.WriteLine to print the message variable. Then print the result of calling the CreateMessage() method.
C Sharp (C#)
Hint

Use Console.WriteLine(message); and Console.WriteLine(CreateMessage()); to print.

Practice

(1/5)
1. What does the following C# code do?
int age = 25;
string message = $"I am {age} years old.";
easy
A. Concatenates the string and integer without formatting.
B. Inserts the value of age into the string at the placeholder.
C. Causes a syntax error because of the dollar sign.
D. Creates a string with the text including curly braces literally.

Solution

  1. Step 1: Understand string interpolation syntax

    The dollar sign $ before the string allows inserting variables inside curly braces.
  2. Step 2: Identify variable insertion

    The variable age is inserted where {age} appears, replacing the placeholder with its value.
  3. Final Answer:

    Inserts the value of age into the string at the placeholder. -> Option B
  4. Quick Check:

    String interpolation = Insert variable value [OK]
Hint: Look for $ and {variable} to spot interpolation [OK]
Common Mistakes:
  • Thinking $ means string concatenation
  • Expecting curly braces to print literally
  • Confusing interpolation with format method
2. Which of the following is the correct syntax for formatting a double value to show two decimal places using string interpolation in C#?
easy
A. double price = 9.99; string s = $"Price: {price:0.00}";
B. double price = 9.99; string s = $"Price: {price,2}";
C. double price = 9.99; string s = $"Price: {price:.2f}";
D. double price = 9.99; string s = $"Price: {price.ToString("0.00")}";

Solution

  1. Step 1: Recognize C# format specifier syntax

    In C#, inside interpolation braces, :0.00 formats numbers to two decimals.
  2. Step 2: Check each option's correctness

    double price = 9.99; string s = $"Price: {price:0.00}"; uses correct format {price:0.00}. double price = 9.99; string s = $"Price: {price,2}"; uses comma which is for alignment, not decimals. double price = 9.99; string s = $"Price: {price:.2f}"; uses Python style .2f which is invalid in C#. double price = 9.99; string s = $"Price: {price.ToString("0.00")}"; calls ToString inside interpolation but with escaped quotes incorrectly.
  3. Final Answer:

    double price = 9.99; string s = $"Price: {price:0.00}"; -> Option A
  4. Quick Check:

    Format decimals with :0.00 inside {} [OK]
Hint: Use colon and format code inside braces for formatting [OK]
Common Mistakes:
  • Using Python or other language format codes
  • Confusing alignment comma with format colon
  • Trying to call methods inside interpolation incorrectly
3. What is the output of the following code?
int x = 5;
int y = 3;
string result = $"Sum: {x + y}, Product: {x * y}";
Console.WriteLine(result);
medium
A. Sum: 53, Product: 15
B. Sum: {x + y}, Product: {x * y}
C. Sum: 8, Product: 15
D. Sum: 8 Product: 15

Solution

  1. Step 1: Evaluate expressions inside interpolation

    The expressions {x + y} and {x * y} calculate 5 + 3 = 8 and 5 * 3 = 15 respectively.
  2. Step 2: Check output formatting

    The string inserts these values with a comma and space exactly as written, so output is "Sum: 8, Product: 15".
  3. Final Answer:

    Sum: 8, Product: 15 -> Option C
  4. Quick Check:

    Expressions inside {} are evaluated before output [OK]
Hint: Calculate expressions inside {} before output [OK]
Common Mistakes:
  • Thinking expressions print literally
  • Concatenating numbers as strings
  • Missing commas or spaces in output
4. Identify the error in this C# code snippet:
int count = 10;
string message = $"Count is {count,2.0}";
Console.WriteLine(message);
medium
A. Variable count is not declared.
B. Missing dollar sign for string interpolation.
C. No error; code runs fine.
D. Incorrect format specifier; cannot combine alignment and decimal format like that.

Solution

  1. Step 1: Understand alignment and format syntax

    In interpolation, {variable,alignment:format} is correct. Here, {count,2.0} mixes alignment and format incorrectly without colon.
  2. Step 2: Identify correct syntax

    It should be {count,2:0} or similar. The dot without colon causes syntax error.
  3. Final Answer:

    Incorrect format specifier; cannot combine alignment and decimal format like that. -> Option D
  4. Quick Check:

    Use comma for alignment, colon for format separately [OK]
Hint: Use comma for alignment, colon for format inside {} [OK]
Common Mistakes:
  • Mixing alignment and format without colon
  • Forgetting dollar sign for interpolation
  • Assuming no error when syntax is wrong
5. You want to display a date in the format "Year: 2024, Month: 06, Day: 15" using string interpolation. Which code snippet correctly formats the DateTime object date to achieve this?
hard
A. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date:yyyy}, Month: {date:MM}, Day: {date:dd}";
B. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date.Year}, Month: {date.Month}, Day: {date.Day}";
C. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date:Year}, Month: {date:Month}, Day: {date:Day}";
D. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date.ToString("yyyy")}, Month: {date.ToString("MM")}, Day: {date.ToString("dd")}";

Solution

  1. Step 1: Understand date format strings in interpolation

    Inside interpolation, {date:format} applies the format string to the DateTime object.
  2. Step 2: Compare options

    DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date:yyyy}, Month: {date:MM}, Day: {date:dd}"; uses correct format codes yyyy, MM, dd inside interpolation. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date.Year}, Month: {date.Month}, Day: {date.Day}"; uses properties but month/day will not have leading zeros. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date:Year}, Month: {date:Month}, Day: {date:Day}"; uses invalid format names. DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date.ToString("yyyy")}, Month: {date.ToString("MM")}, Day: {date.ToString("dd")}"; calls ToString with escaped quotes incorrectly.
  3. Final Answer:

    DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date:yyyy}, Month: {date:MM}, Day: {date:dd}"; -> Option A
  4. Quick Check:

    Use :format inside {} for DateTime formatting [OK]
Hint: Use :yyyy, :MM, :dd inside {} for date formatting [OK]
Common Mistakes:
  • Using property names as format strings
  • Forgetting leading zeros for month/day
  • Overusing ToString inside interpolation unnecessarily