Concat基于索引的两个数组

时间:2019-07-18 09:37:11

标签: c# linq lambda

我需要通过 Linq 或lamda表达式来解决。

可以通过循环轻松完成,但是我想在Linq或lambda表达式中尝试。

string[] value1 = {"A", "B"};
string[] value2 = {"C", "D"};

List<string> value1 = new List<string>() {"A", "B"};
List<string> value2 = new List<string>() {"C", "D"};

var output = {"AC", "BD"};

包含索引

var output = {"AC","BD"};

1 个答案:

答案 0 :(得分:3)

如果数组的长度为 个相等,请放置Zip

var output = value1
  .Zip(value2, (v1, v2) => v1 + v2)
  .ToArray();

如果没有,我们希望将缺席项目视为空字符串:

var output = Enumerable
  .Range(0, Math.Max(value1.Length, value2.Length))
  .Select(i => (i < value1.Length ? value1[i] : "") + 
               (i < value2.Length ? value2[i] : ""))
  .ToArray();