https://docs.microsoft.com/zh-cn/dotnet/api/system.string.concat?view=net-5.0
1)连接string[]或object[]数组中的元素
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
class Program
static object[] strArr = new object[5];
//static string[] strArr = new string[5]; //等价于上一句
static void Main(string[] args)
for (int i = 0; i < 5; i++)
strArr[i] = i.ToString() + ' ';
string str = string.Concat(strArr);
Console.WriteLine(str);
运行结果如下:
2)连接多个string实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
class Program
static string str1 = "Hello ";
static string str2 = "World!";
static void Main(string[] args)
string str3 = string.Concat(str1, str2);
Console.WriteLine(str3);
运行结果如下:
System.Text.StringBuilder C#类的替代方法。
由于System.Text.StringBuilder在追加字符串时实际上会分配大量内存,因此通常它并不比直接字符串concat更好。
框架4.8
BenchmarkDotNet =v0.12.0, OS =Windows 10.0.18363
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
[Host] : .NET Framework 4.8 (4.8.4042.0), X86 LegacyJIT
Job-GLVCMQ : .NET Framework 4.8 (4.8.4042.0), X86 LegacyJIT
本文主要用于介绍C#中字符串拼接的三种方法:String 的+、concat方法 以及 StringBuilder( or StringBuffer) 的append方法之间的性能差异。
public List<FileInfo> GetFiles() {
string path = string.Concat(System.AppDomain.CurrentDomain.BaseDirectory,Files\\);
//获取项目物理路径
string[] fileType=new string[]{pdf\\,pps\\,xls\\};
string[] directoryFiles = new string[] { };
List<FileInfo> f
构造StringBuilder以避免分配生成器本身
从ThreadStatic或ArrayPool租用写入缓冲区
所有的append方法都是泛型的( Append<T>(T value) )并直接写入缓冲区而不是连接value.ToString
T1 〜 T16 AppendFormat( AppendFormat<T1>(string format, T1 arg1, ..., T16 arg16)避免拳击的结构参数
也T1 〜 T16的毗连( Concat<T1>(T1 arg1, ..., T16 arg16)避免装箱和value.ToString分配
ZString.Format/Concat/Join方法可以代替String.Format/Concat/Join
可以直接构建
Ruby语言中的String是mutable的,不像java、C#中的String是immutable的。比如 代码如下: str1=”abc” str2=”abc” 在java中,对于字面量的字符串,jvm内部维持一张表,因此如果在java中,str1和str2是同一个String对象。而在Ruby中, str1和str2是完全不同的对象。同样,在java中对于String对象的操作都将产生一个新的对象,而Ruby则是操纵同一个对象,比如: 代码如下: str=”abc” str.concat(“cdf”) 此时str就是”abccdf”。Ruby对String是怎么处理的呢
Concat()函数用于将多个字符串连接成一个新的字符串,并返回结果。,分别包含"Hello"和"World"。然后,我们使用Concat()函数将这两个字符串连接在一起,并将结果存储一起,并将结果存储在。,分别包含"Hello"、空格和"World"。然后,我们使用Concat()函数将这三个字符串连接在一起,并将结果存储在。希望这个简单的示例和解释能够帮助你理解C#中的字符串连接函数Concat()的作用。除了连接两个字符串,Concat()函数还可以连接多个字符串。函数将结果输出到控制台。
参数first 要连接的第一个序列。second 要连接的第二个序列。返回值IEnumerable< TSource > 一个包含两个输入序列的连接元素的 IEnumerable< T>。此方法通过使用延迟执行来实现,因为IEnumerable是延迟加载的,每次访问的时候才取值。所以我们在返回数据时需要使用yield所以我们可通过使用 foreach 语句
在Dotnet开发过程中,Concat作为IEnumerable的扩展方法,十分常用。本文对Concat方法的关键源码进行简要分析假如我们有这样的两个集合,我们需要把两个集合进行连接!List lst = new List { "张三", "李四" };
List lst2 = new List { "王麻子" };不使用Linq
使用Linq
public static IEnumerable Conc...
String.Concat (Object) 创建指定对象的 String 表示形式。 由 .NET Compact Framework 支持。 String.Concat (Object[]) 连接指定 Object 数组中的元素的 String 表示形式。 由 .NET Compact Framework 支持。 String.Concat (String[])
如果你的内插写法里的变量是对象,而且你没有显示.ToString(),那么就会被编译为 stringformat,而这是最慢的一种拼接方式!一开始我嫌 StringBuilder 每个字符串都要写一行,又臭又长,所以想单独写个方法,然后传字符串进去,那这就要用到 params 关键字.,内插写法会被编译为两种情况,一种是stringformat,一种是string.concat。如果你每次拼接的字符串拼接的在5-6个以下,就可以用string.concat.比如。上下两种的性能差好几倍!
看网上有很多人都是BB那么多,一个实例都没有,感觉一点儿用也没有。Talk is cheap, show me the code. 空谈误国,实干兴邦。
Concat具体用法可以参考:https://docs.microsoft.com/zh-cn/dotnet/api/system.string.concat
C# 字符串的三种拼接方法性能比较可以参考:https://blog.csdn.ne...
两个现实中的例子:1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了(我不是医生也不是声学专家,不知说得是否准确^_^)。2、地球内部结构:地球的内部结构大体可以分为三层:地壳、地幔和地核
public static void main(String[] args) {
String string="你好:";
string=string.concat("java");
System.o
以下两段语句最终效果均为用数据库插入数据,:
string sql = string.Concat(new object[] {"insert into 表名(字段1,字段2) values('",值1,"','",值2,"')"});
string sql = "inser
1、在C#中对字符串进行拼接时我们可以使用string.format()和string.Concat()
2、string.format()因为在操作时需要遍历字符串来读取占位符所以效率比string.Concat()稍低
3、在字符串比较长且比较复杂时,声明一个stringBuilder是很有必要的。
4、字符串拼接的 + 、 += 这里及不作过多介绍了
也欢迎登录我的个人网站,里...