преобразовать массив строк в строку - PullRequest
130 голосов
/ 30 января 2011

Я хотел бы преобразовать массив строк в одну строку.

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

Я бы хотел что-то вроде "Hello World!"

Ответы [ 9 ]

237 голосов
/ 30 января 2011
string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string.Join("", test);
22 голосов
/ 16 мая 2016

Немного более быстрый вариант , чем при использовании уже упомянутого использования метода Join(), - это метод Concat () .Он не требует пустого параметра разделителя, как Join().Пример:

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

string result = String.Concat(test);

, следовательно, скорее всего, быстрее.

19 голосов
/ 30 января 2011

Попробуйте:

String.Join("", test);

, которая должна вернуть строку, соединяющую два элемента вместе."" указывает, что вы хотите соединить строки без разделителей.

14 голосов
/ 17 декабря 2015

Простая 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 () лучше с точки зрения производительности.Просто укажите «» (пустой) аргумент в качестве разделителя.StringBuilder также можно использовать для повышения производительности, но он сделает код немного длиннее.

2 голосов
/ 28 ноября 2016

Aggregate также может использоваться для того же.

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);
1 голос
/ 30 января 2011
    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();
    }
0 голосов
/ 03 ноября 2016

В принятом ответе 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);
0 голосов
/ 10 мая 2016

Я использовал этот способ, чтобы сделать мой проект быстрее:

RichTextBox rcbCatalyst = new RichTextBox()
{
    Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();

return text;

RichTextBox.Text автоматически преобразует ваш массив в многострочную строку!

0 голосов
/ 30 января 2011

Вот так:

string str= test[0]+test[1];

Вы также можете использовать цикл:

for(int i=0; i<2; i++)
    str += test[i];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...