Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
C#

C#: Advanced String Interpolation Tricks You Didn’t Know

- 31.05.26 - ErcanOPAK

✨ More Than Just ${variable}

String interpolation can format numbers, align text, use expressions, and even span multiple lines. Level up your strings.

📝 Formatting Numbers

double price = 1234.5678;
string formatted = $"Price: {price:C2}";        // $1,234.57
formatted = $"Percent: {0.1234:P1}";          // 12.3%
formatted = $"{price:N0}";                    // 1,235
formatted = $"{price:F2}";                    // 1234.57
formatted = $"{price:E4}";                    // 1.2346E+003

// Date formatting
DateTime now = DateTime.Now;
formatted = $"{now:yyyy-MM-dd}";              // 2024-01-15
formatted = $"{now:MMMM dd, yyyy}";           // January 15, 2024
formatted = $"{now:HH:mm:ss}";                // 14:30:45

🎯 Alignment and Expressions

// Right/left alignment
string[] names = ["Alice", "Bob", "Charlie"];
foreach (var name in names) {
  Console.WriteLine($"{name,10}");  // Right-aligned, width 10
  Console.WriteLine($"{name,-10}"); // Left-aligned, width 10
}

// Expressions inside interpolation
int x = 10, y = 20;
string result = $"Sum: {x + y}, Product: {x * y}";

// Ternary operator
bool isAdmin = true;
string role = $"User is {(isAdmin ? "Admin" : "User")}";

// Conditional formatting
double temperature = 25.5;
string weather = $"Temp: {temperature:F1}°C {(temperature > 30 ? "Hot!" : "Nice")}";

// Multi-line strings
string sql = $@"
SELECT * FROM users
WHERE id = {userId}
  AND status = 'active'";

✅ Culture-Specific Formatting

// Invariant culture (for serialization)
string json = $"{{ "price": {price.ToString(CultureInfo.InvariantCulture)} }}";

// Specific culture
var culture = new CultureInfo("de-DE");
string germanPrice = $"Price: {price.ToString("C2", culture)}"; // 1.234,57 €

// Create interpolated string handler for performance
public static void Log(LogLevel level, [InterpolatedStringHandlerArgument("")] ref MyInterpolatedStringHandler handler)
{
    if (IsEnabled(level))
        Console.WriteLine(handler.ToString());
}

“Used to concatenate strings with +. Switched to interpolation. Code is cleaner, faster, and formatting is built-in. Cannot go back.”

— C# Developer

Related posts:

ASP.NET Core “Request Body Already Read” — Enable Buffering

Creating Multiline textbox using Html.Helper function in Asp.Net MVC

C#: Use LINQ Efficiently - Avoid Common Performance Pitfalls

Post Views: 7

Post navigation

SQL: Use CTEs to Write Readable Complex Queries
C#: Use File-Scoped Namespaces to Remove One Level of Indentation

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

June 2026
M T W T F S S
1234567
891011121314
15161718192021
22232425262728
2930  
« May    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (953)
  • How to add default value for Entity Framework migrations for DateTime and Bool (882)
  • Get the First and Last Word from a String or Sentence in SQL (838)
  • How to select distinct rows in a datatable in C# (808)
  • How to make theater mode the default for Youtube (805)
  • Add Constraint to SQL Table to ensure email contains @ (580)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (579)
  • Average of all values in a column that are not zero in SQL (538)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (505)
  • Find numbers with more than two decimal places in SQL (454)

Recent Posts

  • C#: Use String Interpolation Instead of Concatenation
  • C#: Use Tuples to Return Multiple Values from Methods
  • SQL: Use ISNULL and NULLIF for Smart NULL Handling
  • .NET Core: Use Data Annotations for Model Validation
  • Git: Use Git Clean to Remove Untracked Files
  • Ajax: Add Custom Headers to Fetch Requests
  • JavaScript: Use console.table to Display Arrays as Tables
  • HTML: Use Spellcheck Attribute to Enable Browser Spell Check
  • CSS: Use user-select to Prevent Text Selection
  • Windows 11: Use Snipping Tool for Instant Screenshots

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (953)
  • How to add default value for Entity Framework migrations for DateTime and Bool (882)
  • Get the First and Last Word from a String or Sentence in SQL (838)
  • How to select distinct rows in a datatable in C# (808)
  • How to make theater mode the default for Youtube (805)

Recent Posts

  • C#: Use String Interpolation Instead of Concatenation
  • C#: Use Tuples to Return Multiple Values from Methods
  • SQL: Use ISNULL and NULLIF for Smart NULL Handling
  • .NET Core: Use Data Annotations for Model Validation
  • Git: Use Git Clean to Remove Untracked Files

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com