C# 将换行符附加到字符串的最佳方式(最后一个除外)
我一直在寻找最佳/最干净的方法来迭代字符串列表,然后创建一个由换行符分隔的字符串(最后一个除外)。像这样:C# 将换行符附加到字符串的最佳方式(最后一个除外),c#,.net,string,refactoring,C#,.net,String,Refactoring,我一直在寻找最佳/最干净的方法来迭代字符串列表,然后创建一个由换行符分隔的字符串(最后一个除外)。像这样: String 1 String 2 String 3 我在这里写了两个循环,在字符串的末尾有一个换行符(我想避免),另一个没有。那个不干净的在我看来不干净。我认为会有一种更简单的方法来实现这一点,使得逻辑几乎和示例中的一样简单,示例中的字符串末尾有一个新行 List<string> errorMessages = new List<string>(); strin
String 1
String 2
String 3
我在这里写了两个循环,在字符串的末尾有一个换行符(我想避免),另一个没有。那个不干净的在我看来不干净。我认为会有一种更简单的方法来实现这一点,使得逻辑几乎和示例中的一样简单,示例中的字符串末尾有一个新行
List<string> errorMessages = new List<string>();
string messages = "";
//Adds newline to last string. Unwanted.
foreach(string msg in errorMessages)
{
messages += msg + "\n";
}
messages = "";
bool first = true;
//Avoids newline on last string
foreach (string msg in errorMessages)
{
if(first)
{
first = false;
messages = msg;
}
else
{
messages += "\n" + msg;
}
}
List errorMessages=new List();
字符串消息=”;
//将换行符添加到最后一个字符串。不需要的。
foreach(errorMessages中的字符串消息)
{
消息+=消息+“\n”;
}
信息=”;
bool first=true;
//避免在最后一个字符串上换行
foreach(errorMessages中的字符串消息)
{
如果(第一)
{
第一个=假;
消息=消息;
}
其他的
{
消息+=“\n”+消息;
}
}
也许这是一厢情愿的想法,但我会认为这是一个很常见的现象,足以证明有更好的方法来实现我的目标。你可以使用
使用连接
string.Join(System.Environment.NewLine, errorMessages);
最短的方法是使用
.Aggregate(…)
或String.Join(…)
或
谢谢,这正是我想要的。在Swift的
序列
协议中找到了类似的API<代码>已加入(分隔符:“\n”)
string.Join(System.Environment.NewLine, errorMessages);
var messages = errorMessages.Aggregate((x, y) => x + Environment.NewLine + y);
var messages = String.Join(Environment.NewLine, errorMessages);
using System;
string.Join(Environment.NewLine, errorMessages);