将2部分数组合并为1

时间:2015-05-05 20:29:28

标签: c# arrays

让我说我有一个

int[] x = new int[8] {1,2,3,4,5,6,7,8};
int[] y = new int[8] {8,7,6,5,4,3,2,1};

我想要一个新的数组,其中包含y + x array的第3和第4个元素

int[] xy = new int[10];

有没有办法做这样的事情:xy = y [2] + y [3] + x所以我会成为:

 xy = {6,5,1,2,3,4,5,6,7,8};

我认为这样的事情应该有效,但不是

 Array.Copy(y, 0, x1, 2, 2);
 Array.Copy(x, 2, x1, 0, 8);

2 个答案:

答案 0 :(得分:4)

如果您的起始索引和结束索引彼此相同或以1分隔,那么您可以执行以下操作:

int[] xy = y.Skip(2).Take(2).Concat(x).ToArray();

记住数组索引是基于0的。

如果你有没有模式的特定索引,例如第3和第7,那么使用@Blorgbeard answer

答案 1 :(得分:3)

你可以这样做:

var xy = new [] { y[2], y[3] }.Concat(x).ToArray();