Я хотел бы преобразовать массив строк в одну строку.
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);