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
Step 1: Understand string interpolation syntax
The dollar sign $ before the string allows inserting variables inside curly braces.
Step 2: Identify variable insertion
The variable age is inserted where {age} appears, replacing the placeholder with its value.
Final Answer:
Inserts the value of age into the string at the placeholder. -> Option B
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
Step 1: Recognize C# format specifier syntax
In C#, inside interpolation braces, :0.00 formats numbers to two decimals.
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.
Final Answer:
double price = 9.99; string s = $"Price: {price:0.00}"; -> Option A
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
Step 1: Evaluate expressions inside interpolation
The expressions {x + y} and {x * y} calculate 5 + 3 = 8 and 5 * 3 = 15 respectively.
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".
Final Answer:
Sum: 8, Product: 15 -> Option C
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
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.
Step 2: Identify correct syntax
It should be {count,2:0} or similar. The dot without colon causes syntax error.
Final Answer:
Incorrect format specifier; cannot combine alignment and decimal format like that. -> Option D
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
Step 1: Understand date format strings in interpolation
Inside interpolation, {date:format} applies the format string to the DateTime object.
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.
Final Answer:
DateTime date = new DateTime(2024, 6, 15); string s = $"Year: {date:yyyy}, Month: {date:MM}, Day: {date:dd}"; -> Option A
Quick Check:
Use :format inside {} for DateTime formatting [OK]
Hint: Use :yyyy, :MM, :dd inside {} for date formatting [OK]