草庐IT

StringBuffer与stringBuilder

全部标签

c# - 为什么使用 TagBuilder 而不是 StringBuilder?

使用标记生成器和字符串生成器在htmlhelper类中创建表格或使用HtmlTable有什么区别?他们生成的不是一样的东西吗?? 最佳答案 TagBuilder是专门为创建html标签及其内容而设计的类。你说得对,结果无论如何都是一个字符串,当然你仍然可以使用StringBuilder并且结果将是相同的,但是你可以使用TagBuilder做事更容易。假设您需要生成一个标签:使用StringBuilder你需要这样写:varsb=newStringBuilder();sb.Append("");sb.ToString();这不是很酷,

c# - 如何附加两个 stringBuilder?

有没有办法附加两个字符串生成器?如果是这样-它的性能是否比将字符串附加到StringBuilder更好? 最佳答案 我知道这是三年后的事了,但是.NET4StringBuilder的行为无论如何都不同了。尽管如此,它还是会回到“你想做什么?”您是否只是在寻找附加两个StringBuilder并继续处理后一个结果的最高效方法?还是您希望继续使用附加的StringBuilder的现有缓冲值?对于前者,并且始终在.NET4中,frontStringBuilder.Append(backStringBuilder);最好。对于.NET2/3

c# - StringBuilder 在 C# 内部是如何工作的?

StringBuilder是如何工作的?它在内部做什么?它使用不安全代码吗?为什么它这么快(与+运算符相比)? 最佳答案 当您使用+运算符构建字符串时:strings="01";s+="02";s+="03";s+="04";然后在第一次连接时,我们创建一个长度为4的新字符串,并将“01”和“02”复制到其中——复制了四个字符。在第二次连接中,我们创建了一个长度为6的新字符串,并将“0102”和“03”复制到其中——复制了六个字符。在第三个concat中,我们创建了一个长度为8的字符串,并将“010203”和“04”复制到其中——复

c# - 在 .NET 1.1 中将 StringBuilder 的内容写入文本文件的最简单方法是什么?

我不得不使用StringBuilder而不是字符串列表,因为这个项目一直使用.NET1.1。我想将我已经写入的一系列调试消息写入一个文件,以便在闲暇时研究,因为屏幕上有太多东西要看(MessageBox没有滚动条)。.NET1.1似乎不提供一些编写文件的简单方法。我也无权访问Environment.Newline来清楚地分隔我附加的行(AppendLine在这个古老版本的StringBuilder中也不可用)。.NET1.1(C#)中将StringBuilder的内容写入文件的最简单方法是什么?手持设备上没有“C”驱动器,所以我想我必须将它写入“\hereIAm.txt”或其他内容。

c# - 将 StringBuilder 写入 Stream

将StringBuilder写入System.IO.Stream的最佳方法是什么?我目前正在做:StringBuildermessage=newStringBuilder("Allyourbase");message.Append("arebelongtous");System.IO.MemoryStreamstream=newSystem.IO.MemoryStream();System.Text.ASCIIEncodingencoding=newASCIIEncoding();stream.Write(encoder.GetBytes(message.ToString()),0,m

c# - StringBuilder:如何获得最终的字符串?

有人告诉我用StringBuilder连接字符串更快。我已经更改了我的代码,但我没有看到任何属性或方法来获取最终的构建字符串。如何获取字符串? 最佳答案 您可以使用.ToString()从StringBuilder获取String。 关于c#-StringBuilder:如何获得最终的字符串?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/227743/

c# - C#中字符串和StringBuilder的区别

string和StringBuilder有什么区别?另外,有什么例子可以帮助理解? 最佳答案 string实例是不可变的。创建后无法更改。任何看似更改字符串的操作都会返回一个新实例:stringfoo="Foo";//returnsanewstringinstanceinsteadofchangingtheoldonestringbar=foo.Replace('o','a');stringbaz=foo+"bar";//dittohere不可变对象(immutable对象)有一些很好的属性,比如它们可以跨线程使用而不用担心同步问题

c# - String.Replace() 与 StringBuilder.Replace()

我有一个字符串,我需要用字典中的值替换其中的标记。它必须尽可能高效。使用string.replace进行循环只会消耗内存(记住,字符串是不可变的)。StringBuilder.Replace()会更好吗,因为它是为处理字符串操作而设计的?我希望避免RegEx的开销,但如果那样会更有效,那就这样吧。注意:我不关心代码复杂度,只关心它运行的速度和消耗的内存。平均统计数据:长度为255-1024个字符,字典中有15-30个键。 最佳答案 使用以下代码使用RedGateProfilerclassProgram{staticstringdat

c# - 从使用 stringbuilder 构建的字符串中删除最后一个字符的最佳方法

我有以下内容data.AppendFormat("{0},",dataToAppend);这个问题是我在循环中使用它并且会有一个尾随逗号。删除尾随逗号的最佳方法是什么?我是否必须将数据更改为字符串然后将其子字符串化? 最佳答案 最简单和最有效的方法是执行这个命令:data.Length--;通过执行此操作,您将指针(即最后一个索引)移回一个字符,但不会更改对象的可变性。事实上,清除StringBuilder最好也用Length来完成(但为了清楚起见,实际上应该使用Clear()方法,因为这就是它的实现看起来像):data.Lengt

c# - StringBuilder 中的换行符

如何在StringBuilder中添加换行符(\n\r)? 最佳答案 我会使用Environment.NewLineproperty.类似于:StringBuildersb=newStringBuilder();sb.AppendFormat("Foo{0}Bar",Environment.NewLine);strings=sb.ToString();或者StringBuildersb=newStringBuilder();sb.Append("Foo");sb.Append("Foo2");sb.Append(Environmen