文字列のリストを反復処理し、改行で区切られた文字列の単一の文字列を作成するための最良/最もクリーンな方法を探していました(最後を除く)。そのようです:
String 1
String 2
String 3
ここでは、文字列の末尾に改行がある(これは避けたい)ループとそうでないループを2つ記述しました。その人は私にとって「きれい」に見えないだけではありません。文字列の最後に新しい行がある例のようにロジックがほぼ単純になるように、もっと簡単な方法があると思います。
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;
}
}
たぶんそれは希望的観測かもしれませんが、これは私の目標を達成するためのより良い方法を保証するのに十分な一般的な出来事だと思っていたでしょう。
String.Join を使用できます。
string.Join("\n", errorMessages);
結合を使用する
string.Join(System.Environment.NewLine, errorMessages);
using System;
string.Join(Environment.NewLine, errorMessages);
最短の方法は、.Aggregate(...)
またはString.Join(...)
を使用することです。
var messages = errorMessages.Aggregate((x, y) => x + Environment.NewLine + y);
または
var messages = String.Join(Environment.NewLine, errorMessages);