Concat字符串数组

时间:2018-12-28 17:38:37

标签: c# arrays string

我有两个字符串数组,我希望它们成为一个具有不同值的字符串数组,如下所示:

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

我想要这样的输出:

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

我使用了string.Join,但是它仅适用于一个字符串数组。

2 个答案:

答案 0 :(得分:29)

听起来您想从LINQ获得Zip

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

Zip采用两个序列,并将给定的委托依次应用于每对元素。 (因此,每个序列的第一个元素,然后每个序列的第二个元素,等等)

答案 1 :(得分:2)

另一种解决方案假设两个数组的长度始终相同

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();