Подтвердить что ты не робот

Лучший способ добавить новую строку в строку, за исключением последних

Я искал лучший/самый чистый способ перебора списка строк, а затем создал одну строку из разделенных символами новой строки (за исключением последних). Например:

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

Возможно, это принятие желаемого за действительное, но я бы подумал, что это достаточно распространенное явление, чтобы гарантировать лучший способ достичь моей цели.

4b9b3361

Ответ 1

Вы можете использовать String.Join.

string.Join("\n", errorMessages);

Ответ 2

Использовать join

string.Join(System.Environment.NewLine, errorMessages);

Ответ 3

using System;

string.Join(Environment.NewLine, errorMessages);

Ответ 4

Самый короткий путь - использовать либо .Aggregate(...), либо String.Join(...).

var messages = errorMessages.Aggregate((x, y) => x + Environment.NewLine + y);

или

var messages = String.Join(Environment.NewLine, errorMessages);