C#5种字符串拼接方式,你用过几种?

3 阅读1分钟

字符串拼接是将两个或多个字符串组合成一个单一字符串的过程,在项目开发中非常常见,C#也为我们提供非常多字符串拼接方式,下面一起盘点下。

01

使用加号(+)

这种方式是最直接、最简单的方式,缺点就是不利于阅读,一般用于较简单的拼接的情况。

string str1 = "Hello";  
string str2 = ", world!";  
string str3 = str1 + str2; 
// "Hello, world!"

02

使用 String.Concat 方法

这种方式与加号(+)类似。

string str1 = "Hello";  
string str2 = ", world!"; 
string str3 = string.Concat(str1, str2)
// "Hello, world!"

03

使用 StringBuilder 方法

使用加号(+)、 String.Concat ,每一次都会新生成一个字符串对象,导致效率低下。在大量进行字符串拼接的情况下,推荐使用StringBuilder会更高效。

StringBuilder sb = new StringBuilder();  
sb.Append("Hello");  
sb.Append(", "); 
 sb.Append("world!");  
 string str = sb.ToString(); 
 // "Hello, world!"

04

使用 String.Format方法

字符串拼接一般比较推荐使用该方法,比较直观。

string name = "John";  
string greeting = String.Format("Hello, {0}!", name); 
// "Hello, John!"

05

使用 $ 的字符串内插

使用 符号可以将变量插入到字符串中, 符号可以将变量插入到字符串中,的方式相对String.Format的方法,更加进一步提升容易阅读。

string name = "John";  
string greeting = $"Hello, {name}!"; 
// "Hello, John!"

支持特殊字符串,以及运算。

string name = "Horace";
int age = 34;

Console.WriteLine($"He asked, \"Is your name {name}?\", but didn't wait for a reply :-{{");
// He asked, "Is your name Horace?", but didn't wait for a reply :-

Console.WriteLine($"{name} is {age} year{(age == 1 ? "" : "s")} old.");
{// Horace is 34 years old.

另外还可以指定字符串格式化。

double speedOfLight = 299792.458;
FormattableString message = $"光速是 {speedOfLight:N3} km/s.";
string messageInInvariantCulture = FormattableString.Invariant(message);
Console.WriteLine(messageInInvariantCulture);
// 输出
// 光速是 299,792.458 km/s

- End -

推荐阅读

一个Asp.Net Core MVC快速开发开源框架

一定要技术很牛逼才能学习架构设计吗?

适合Windows桌面、Material Design设计风格、WPF美观控件库【强烈推荐】

可拖拉拽的WPF选项卡控件,强大好用!

推荐一个Excel与实体映射导入导出的C#开源库