【问题标题】:Concat string array连接字符串数组
【发布时间】:2018-12-28 17:38:36
【问题描述】:

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

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

我想要这样的输出:

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

我用过string.Join,但它只适用于一个字符串数组。

【问题讨论】:

  • 使用2个for循环和一个返回数组

标签: c# arrays string


【解决方案1】:

听起来你想要来自 LINQ 的 Zip

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

Zip 接受两个序列,并将给定的委托依次应用于每对元素。 (所以每个序列的第一个元素,然后是每个序列的第二个元素等)

【讨论】:

    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2012-10-05
      • 2017-01-19
      • 2016-07-21
      • 1970-01-01
      相关资源
      最近更新 更多