Я хотів би перетворити рядковий масив в один рядок.
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 "
у запитанні вже мала пробіл. Якби місця вже не було, то ви будете правильно, а використання " "
в якості роздільника мало б більше сенсу.
Проста string.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 () краще з точки зору performace. Просто наведіть аргумент "" (порожній) як сепаратор. 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 включив проміжок у першому пункті: "Привіт" (замість того, щоб використовувати нульовий роздільник).
Однак, оскільки ОП попросив отримати результат "Привіт, світ!", 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);