Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将换行符附加到字符串的最佳方式(最后一个除外)_C#_.net_String_Refactoring - Fatal编程技术网

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);