Я хотел бы преобразовать массив строк в одну строку.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Я хотел бы иметь что-то вроде "Hello World!"
Я хотел бы преобразовать массив строк в одну строку.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
Я хотел бы иметь что-то вроде "Hello World!"
Ответы:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string.Join("", test);
var separator = ", "; string.Join(separator , test);
string.Join(string.Empty, test)вместо использования empty-paranthesis.
Несколько более быстрым вариантом, чем использование уже упомянутого Join()метода, является метод Concat () . Это не требует пустого параметра разделителя, как Join()делает. Пример:
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = String.Concat(test);
следовательно, это, вероятно, быстрее.
ConcatЛучше, во внутренний код Join, он будет добавлять разделитель после каждого элемента. Но Concatне иметь таких кодов, это проще и прямее, чем Join. Это самый подходящий ответ.
Пытаться:
String.Join("", test);
который должен вернуть строку, соединяющую два элемента вместе. ""указывает, что вы хотите соединить строки без разделителей.
"Hello "в вопросе уже имела завершающий пробел. Если бы места еще не было, вы были бы правы, и использование " "в качестве разделителя имело бы больше смысла.
Простая строка .Concat () - это то, что вам нужно.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string result = string.Concat(test);
Если вам также необходимо добавить разделитель (пробел, запятая и т. Д.), Следует использовать string.Join ().
string[] test = new string[2];
test[0] = "Red";
test[1] = "Blue";
string result = string.Join(",", test);
Если вам нужно выполнить это на строковом массиве с множеством элементов, чем string.Join () лучше с точки зрения производительности. Просто дайте "" (пустой) аргумент в качестве разделителя. StringBuilder также можно использовать для повышения производительности, но он сделает код немного длиннее.
Concatи Joinбыстрее, чем StringBuilderесли у вас есть 4 или менее строк для объединения.
Aggregate также может быть использован для того же.
string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
String.Joinиз-за создания нескольких дополнительных строк. Пожалуйста, прочитайте stackoverflow.com/questions/217805/… для правильного варианта Aggregate.
string ConvertStringArrayToString(string[] array)
{
//
// Concatenate all the elements into a StringBuilder.
//
StringBuilder strinbuilder = new StringBuilder();
foreach (string value in array)
{
strinbuilder.Append(value);
strinbuilder.Append(' ');
}
return strinbuilder.ToString();
}
string.Join(" ", array)(за исключением того, что ваш добавляет пробел). Почему бы просто не использовать тот в библиотеке?
В принятом ответе String.Join не лучшая практика для его использования. String.Concat следует использовать, поскольку OP включил в первый элемент завершающий пробел: «Hello» (вместо использования нулевого разделителя).
Однако, так как OP запросил результат «Hello World!», String.Join по-прежнему является подходящим методом, но завершающий пробел должен быть перемещен в разделитель.
// string[] test = new string[2];
// test[0] = "Hello ";
// test[1] = "World!";
string[] test = { "Hello", "World" }; // Alternative array creation syntax
string result = String.Join(" ", test);