Конкатный массив строк - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть два строковых массива, я хочу, чтобы они стали единым целым с разными значениями, как это:

string[] array1 = { "Jhon", "Robert", "Elder" };
string[] array2 = { "Elena", "Margareth", "Melody" };

Я хочу вывод, подобный этому:

{ "Jhon and Elena", "Robert and Margareth", "Elder and Melody" };

Я использовалstring.Join, но работает только для одного массива строк.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Другое решение при условии, что оба массива всегда будут иметь одинаковую длину .

var result = array1.Select((e, i) => $"{e} and {array2[i]}").ToArray();

Хотя я должен признать, что это не так читабельно, как Zip, показанный в другом ответе.

Другое решение будет через Enumerable.Range:

Enumerable.Range(0, Math.Min(array1.Length, array2.Length)) // drop Min if arrays are always of the same length
          .Select(i => $"{array1[i]} and {array2[i]}")
          .ToArray();
0 голосов
/ 28 декабря 2018

Звучит так, как вы хотите Zip из LINQ:

var result = array1.Zip(array2, (left, right) => $"{left} and {right}").ToArray();

Zip принимает две последовательности и применяет данный делегат к каждой паре элементов по очереди.(Таким образом, первый элемент каждой последовательности, затем второй элемент каждой последовательности и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...