我有以下内容
data.AppendFormat("{0},",dataToAppend);
Run Code Online (Sandbox Code Playgroud)
这个问题是我在循环中使用它并且会有一个试用逗号.删除尾随逗号的最佳方法是什么?
我是否必须将数据更改为子串的字符串呢?
Mik*_*oud 198
最简单,最有效的方法是执行以下命令:
data.Length--;
Run Code Online (Sandbox Code Playgroud)
通过执行此操作,您可以将指针(即最后一个索引)移回一个字符,但不会更改对象的可变性.事实上,清除a StringBuilder最好也是这样做的Length(但实际上使用该Clear()方法是为了清晰,因为这是它的实现看起来像):
data.Length = 0;
Run Code Online (Sandbox Code Playgroud)
再次,因为它不会更改分配表.想想它就像说,我不想再识别这些字节了.现在,即使在打电话时ToString(),它也不会识别任何过去的东西Length,好吧,它不能.它是一个可变对象,分配的空间比你提供的空间多,它只是以这种方式构建.
Vla*_*lad 40
只是用
string.Join(",", yourCollection)
Run Code Online (Sandbox Code Playgroud)
这样你就不需要StringBuilder和循环了.
Sam*_*ach 11
循环后使用以下内容.
.TrimEnd(',')
Run Code Online (Sandbox Code Playgroud)
或者只是改为
string commaSeparatedList = input.Aggregate((a, x) => a + ", " + x)
Run Code Online (Sandbox Code Playgroud)
这个怎么样..
string str = "The quick brown fox jumps over the lazy dog,";
StringBuilder sb = new StringBuilder(str);
sb.Remove(str.Length - 1, 1);
Run Code Online (Sandbox Code Playgroud)
我更喜欢操纵stringbuilder的长度:
data.Length = data.Length - 1;
Run Code Online (Sandbox Code Playgroud)