c#用另一个数组的偶数元素替换数组的奇数元素

时间:2017-04-30 19:27:31

标签: c# arrays

int[] array1 = new int[6] {2, 5, 7, 8, 9, 4};

int[] array2 = new int[6] {4, 8, 2, 1, 5, 8};

我想用第二个偶数元素改变第一个数组中的奇数元素。

2 个答案:

答案 0 :(得分:1)

长版本和问题的不同方法。 (没有Linq)

int[] array1 = new int[6] { 2, 5, 7, 8, 9, 4 };
int[] array2 = new int[6] { 4, 8, 2, 1, 5, 8 };

for (int i = 0; i < array1.Length; i++) 
{
 if ((array1[i] % 2 == 0)) 
 {
  array1[i] = array1[i];
 } 
 else 
 {
  array1[i] = array2[i];
 }
}

foreach(int t in array1)
 Console.Write(t + ", ");

//result: 2, 8, 2, 8, 5, 4

答案 1 :(得分:0)

尽管这是一个非常具体的问题,但这是一个解决方案:

var array1 = new[] { 2, 5, 7, 8, 9, 4 };
var array2 = new [] { 4, 8, 2, 1, 5, 8 };

array1 = array1.Select((i, index) => i % 2 == 1 ? array2[index] : i).ToArray();
//result: int[6] { 2, 8, 2, 8, 5, 4 }

它取第一个数组中的元素,检查它是否均匀,如果它与另一个数组的那个位置的项目有点奇怪,则替换它。

我不完全确定这是你正在寻找的东西,否则请澄清你的问题。

例如,您可以指具有奇数索引的项目:

var array1 = new[] { 2, 5, 7, 8, 9, 4 };
var array2 = new[] { 4, 8, 2, 1, 5, 8 };

array1 = array1.Select((i, index) => index % 2 == 1 ? array2[index-1] : i).ToArray();
//result: int[6] { 2, 4, 7, 2, 9, 5 }