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

String interpolation and formatting in C Sharp (C#) - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
String Interpolation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of string interpolation with expressions
What is the output of the following C# code?
C Sharp (C#)
int a = 5;
int b = 3;
string result = $"Sum of {a} and {b} is {a + b}";
Console.WriteLine(result);
ASum of a and b is a + b
BSum of 5 and 3 is 8
CSum of 5 and 3 is a + b
DSum of 5 and 3 is 53
Attempts:
2 left
💡 Hint
Remember that expressions inside { } in interpolated strings are evaluated.
Predict Output
intermediate
2:00remaining
Formatting numbers with string interpolation
What will be printed by this C# code?
C Sharp (C#)
double pi = 3.14159;
string formatted = $"Pi rounded to 2 decimals: {pi:F2}";
Console.WriteLine(formatted);
APi rounded to 2 decimals: 3.14
BPi rounded to 2 decimals: 3.14159
CPi rounded to 2 decimals: 3.1
DPi rounded to 2 decimals: 3
Attempts:
2 left
💡 Hint
The :F2 format specifier rounds to 2 decimal places.
Predict Output
advanced
2:00remaining
Aligning text with string interpolation
What is the output of this C# code snippet?
C Sharp (C#)
string name = "Bob";
string output = $"|{name,10}|{name,-10}|";
Console.WriteLine(output);
A|Bob|Bob|
B|Bob | Bob|
C| Bob| Bob|
D| Bob|Bob |
Attempts:
2 left
💡 Hint
Positive numbers align right, negative numbers align left in interpolation.
Predict Output
advanced
2:00remaining
Custom numeric format strings in interpolation
What will this C# code print?
C Sharp (C#)
int number = 42;
string formatted = $"Number with leading zeros: {number:D5}";
Console.WriteLine(formatted);
ANumber with leading zeros: 42000
BNumber with leading zeros: 42
CNumber with leading zeros: 00042
DNumber with leading zeros: 0000042
Attempts:
2 left
💡 Hint
The D5 format pads the number with zeros to make it 5 digits long.
🧠 Conceptual
expert
2:00remaining
Understanding escape sequences in interpolated strings
Which option correctly shows how to include a literal brace character '{' in a C# interpolated string?
Astring s = $"This is a brace: {{";
Bstring s = $"This is a brace: {";
Cstring s = $"This is a brace: \{";
Dstring s = $"This is a brace: '{'";
Attempts:
2 left
💡 Hint
In interpolated strings, double braces {{ or }} are used to escape braces.

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