【发布时间】:2010-10-19 14:36:41
【问题描述】:
将(字符串)列表转换为值由逗号分隔的字符串的最佳方法是什么 (,)
【问题讨论】:
-
为什么不把它变成一个速度/性能问题呢? “最快的方法是什么……”
-
不能解释为最快和/或高效?
将(字符串)列表转换为值由逗号分隔的字符串的最佳方法是什么 (,)
【问题讨论】:
String.Join(",", myListOfStrings.ToArray())
【讨论】:
ToArray() 转换之前的空/空检查:myListOfStrings.Where(Function(s) Not String.IsNullOrEmpty(s)).ToArray()
ToArray()。您可以按原样使用它。 String.Join(",", myListOfStrings)
这取决于您所说的“最佳”是什么意思。占用内存最少的是首先计算最终字符串的大小,然后创建具有该容量的 StringBuilder 并将字符串添加到其中。
StringBuilder 将创建一个大小正确的字符串缓冲区,该缓冲区是您从 ToString 方法中获得的字符串。这意味着没有创建额外的中间字符串或数组。
// specify the separator
string separator = ", ";
// calculate the final length
int len = separator.Length * (list.Count - 1);
foreach (string s in list) len += s.Length;
// put the strings in a StringBuilder
StringBuilder builder = new StringBuilder(len);
builder.Append(list[0]);
for (int i = 1; i < list.Count; i++) {
builder.Append(separator).Append(list[i]);
}
// get the internal buffer as a string
string result = builder.ToString();
【讨论】:
我的解决方案:
string = ["a","2"]\n
newstring = ""
endOfString = len(string)-1
for item in string:
newstring = newstring + item
if item != string[endOfString]:
newstring = newstring ","'
【讨论】:
一个简单的解决方案:
dim str as string = ""
for each item as string in lst
str += ("," & item)
next
return str.substring(1)
它从字符串(",")中取出第一个字符
【讨论】: