【发布时间】:2018-05-13 07:28:54
【问题描述】:
来自这个问题: How to split an array to 2 arrays with odd and even indices respectively?
我已经使用这种方法将一个数组拆分为 2 个分别具有奇数和偶数索引的数组:
int[] a = new int[] { 1, 3, 7, 8 };
int[] aEven = a.Where((x, i) => i % 2 == 0).ToArray();
int[] aOdd = a.Where((x, i) => i % 2 != 0).ToArray();
这会产生 2 个数组:
aEven : {1, 7}
aOdd : {3, 8}
如何以优雅的方式将aEven/aOdd 合并回原来的a 数组?
注意:我不会更改 aEven/aOdd 数组,并且保证两个数组的长度相同。
我需要来自aEven/aOdd 输入的输出是:
{ 1, 3, 7, 8 };
【问题讨论】:
-
它不是 C。它是 C# - 完全不同的语言。
-
这只是一个错误。对不起
-
任何解决方案都将涉及一个循环,无论是直接的(即
for)还是间接的(即LINQ的zip) -
要更新原始数组吗?看来您从未修改过它,所以它已经是正确的。还是您的意思是您想合并这两个数组以创建一个与原始数组相同的新数组(这样您可能根本没有原始数组,而您正在尝试重建它)?
-
希望在我的编辑之后,所有投票以
unclear what you're asking结束的人都会知道我在问什么 :)
标签: c# linq collections