猎豹浏览器网购后怎么启动显示敢赔保单。现在在网上买东西都会担心质量问题,担心会不会发假货,等等。如果我们网购后,有人帮我们对我们买的东西保证,敢赔保单,那购物就比......
2017-01-26 211 猎豹浏览器
C# 提供了三种字符串连接的方法,分别是直接用 +、字符格式(string.format)、StringBuilder,它们的效率如何及应该在什么时候使用?下面分别一一分析。
1、何时使用 + 连接
如果待连接的字符串在6个以下,可以使用 + 连接。
使用 + 连接最终会调用 String.Concat 方法,当同时连接几个字符串时,并不是每连接一个都分配一次内存,而是把几个字符都作为 String.Concat 方法的参数,只分配一次内存,如:
string s = s1 + s2 + s3 + s4 + s5;
最终会被编译为:string.Concat(s1, s2, s3, s4, s5);
经测试,当待连接的字符串在6个以下时,使用 + 连接,效率略高于 StringBuilder。
2、何时使用 StringBuilder
如果待连接字符串在6个以上,使用 StringBuilder 比较合适。
StringBuilder 只分配一次内存,如果第二次连接内存不足,则修改内存大小;它每次默认分配16字节,如果内存不足,则扩展到32字节,如果仍然不足,继续成倍扩展。
使用 StringBuilder 的关键是分配好内存,如果频繁的扩展内存,效率大打折扣,因为分配内存,时间开销相对比较大。如果事先能准确估计程序执行过程中所需要的内存,从而一次分配足内存,效率大大提高。如果不能准确估计,也要尽量减少内存的分配次数。
StringBuilder 使用方法如下(例如连接一条 SQL 语句):
StringBuilder sb = new StringBuilder();
sb.Append("Select * From Products Where userId='");
sb.Append(userId);
sb.Append("' And AddDate >= '");
sb.Append(dt);
sb.Append("'");
3、字符格式(string.format)
string.format 方法,其实最终是调用 StringBuilder,原型如下:
public static string Format(IFormatProvider provider, string format, params object[] args)
{
if ((format == null) || (args == null))
{
throw new ArgumentNullException((format == null) ? "format" : "args");
}
StringBuilder builder = new StringBuilder(format.Length + (args.Length * 8));
builder.AppendFormat(provider, format, args);
return builder.ToString();
}
如果在待连接字符串比较少的情况下,并没有什么效率上的差别,在 StringBuilder 和 string.format 之间可以根据方便性或习惯自由选择。如果连接的字符串很多, StringBuilder 的效率自然要高,并且使用 string.format 也不太方便。
string.format 的使用方法如下:
string userId = "yuqi";
string dt = "2020-07-20";
string str = string.format("Select * From Products Where userId='{0}' And AddDate >= '{2}'", userId, dt);
标签: C#多个字符串连接的效率比较
相关文章
猎豹浏览器网购后怎么启动显示敢赔保单。现在在网上买东西都会担心质量问题,担心会不会发假货,等等。如果我们网购后,有人帮我们对我们买的东西保证,敢赔保单,那购物就比......
2017-01-26 211 猎豹浏览器
腾讯会议软件不仅可以在手机上使用,还可以在电脑上安装使用,所以为了方便,有很多小伙伴都会根据自己的情况在手机或者电脑上下载安装腾讯会议软件。在进行会议的时候,有的......
2023-12-26 201 腾讯会议播放ppt
大家都知道Mobaxterm是一款超级好用的全能远程终端控制软件,但是mobaxterm能设置中文界面版本吗?mobaxterm怎么设置中文?很多网友或运维人员苦于英语水平差,使用起来非常扎心,下面......
2022-07-06 656 mobaxterm mobaxterm设置中文界面
日常生活中我们有时候会将Word文档,Excel表格等资料文件保存为PDF格式,这样可以保证文件在其他设备上打开时格式不变乱,也能保证其他人不能更改文件中的资料,非常地方便。如果......
2024-01-07 201 格式工厂将PDF文件转换为Word文档
腾讯直播是一款随时与网友互动强大的app,可以看直播和电影等等!但是有用户反映腾讯直播打不开,那么腾讯直播打不开怎么办呢?下面一起和小编来了解下腾讯直播打不开解决教程......
2016-06-12 222 腾讯直播