如何将字符串列表连接成一个以分隔符为分隔的字符串?主要关注何时停止添加分隔符,使用C#举例,但希望这个方法是语言无关的。
编辑:我没有使用 StringBuilder,让代码更简单一些。
使用 For 循环
for(int i=0; i < list.Length; i++)
{
result += list[i];
if(i != list.Length - 1)
result += delimiter;
}
使用for循环并设置先前的第一个项目
result = list[0];
for(int i = 1; i < list.Length; i++)
result += delimiter + list[i];
如果你不预先知道列表的长度,这些方法在 IEnumerable 上将不起作用,所以
使用 foreach 循环
bool first = true;
foreach(string item in list)
{
if(!first)
result += delimiter;
result += item;
first = false;
}
foreach循环的变化
来自Jon的解决方案。
StringBuilder builder = new StringBuilder();
string delimiter = "";
foreach (string item in list)
{
builder.Append(delimiter);
builder.Append(item);
delimiter = ",";
}
return builder.ToString();
使用迭代器
再次来自Jon
using (IEnumerator<string> iterator = list.GetEnumerator())
{
if (!iterator.MoveNext())
return "";
StringBuilder builder = new StringBuilder(iterator.Current);
while (iterator.MoveNext())
{
builder.Append(delimiter);
builder.Append(iterator.Current);
}
return builder.ToString();
}
还有哪些其他算法?