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

String interpolation and formatting in C Sharp (C#) - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the variable name using string interpolation.

C Sharp (C#)
string name = "Alice";
Console.WriteLine($"Hello, [1]!");
Drag options to blanks, or click blank then click option'
Auser
B"name"
CName
Dname
Attempts:
3 left
💡 Hint
Common Mistakes
Putting quotes around the variable name inside the braces, which prints the word instead of the value.
Using a different variable name that does not exist.
2fill in blank
medium

Complete the code to format the number score with two decimal places using string interpolation.

C Sharp (C#)
double score = 95.6789;
Console.WriteLine($"Score: [1]{score}");
Drag options to blanks, or click blank then click option'
A:F2
B:F1
C:N2
D:P2
Attempts:
3 left
💡 Hint
Common Mistakes
Using :F1 which shows only one decimal place.
Using :P2 which formats as percentage.
Using :N2 which adds commas but also shows decimals.
3fill in blank
hard

Fix the error in the code to correctly align the text to the right with width 10 using string interpolation.

C Sharp (C#)
string word = "Hi";
Console.WriteLine($"[1],10}");
Drag options to blanks, or click blank then click option'
A"word"
Bword
CWord
Dword.ToString()
Attempts:
3 left
💡 Hint
Common Mistakes
Putting quotes around the variable name, which prints the word 'word' instead of the variable value.
Using a capitalized variable name that does not exist.
4fill in blank
hard

Fill both blanks to create a formatted string that shows the price with 2 decimals and left-aligns the item in 15 spaces.

C Sharp (C#)
string item = "Apple";
double price = 1.2345;
string output = $"[1],-15} costs [2]:F2}";
Drag options to blanks, or click blank then click option'
Aitem
Bprice
Citem.ToUpper()
Dprice.ToString()
Attempts:
3 left
💡 Hint
Common Mistakes
Using price in the first blank which is a number, not a string.
Using item.ToUpper() which changes the text but is not required.
Using price.ToString() which is unnecessary inside interpolation.
5fill in blank
hard

Fill all three blanks to create a string that shows the uppercase city, the temperature with 1 decimal, and the unit symbol.

C Sharp (C#)
string city = "Paris";
double temperature = 23.456;
string unit = "°C";
string report = $"[1]: [2]:F1}[3]";
Drag options to blanks, or click blank then click option'
Acity.ToUpper()
Btemperature
Cunit
Dcity
Attempts:
3 left
💡 Hint
Common Mistakes
Using city instead of city.ToUpper() for uppercase.
Putting quotes around variables inside braces.
Not formatting the temperature to one decimal.

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