检查两个单独的数组值并获取最小的一个以将 CW 新数组值插入到新数组中

Check against two separate array values and grabbing the smallest one to insert into a new array the CW new array values

我正在使用数组和条件语句,现在有点迷茫,希望得到一些输入。

所以,我创建了两个数组

int[] one = new int[] { 
    4160414, 6610574, 2864453, 9352227, -4750937, -3132620, 2208017,  
    -2226227, -8415856, -9834062, -3401569, 7581671, 8068562, 7520435,  
    -9277044, -7821114, -3095212, 966785, 6873349, -8441152, -7015683, 
    -6588326, -282013, 4051534, 9930123, -3093234 };

int[] two = new int[] { 
    1099626, 6083415, 8083888, -8210392, 2665304, -8710738, -8708241, 
    8859200, -1255323, 5604634, 2921294, -7260228, 7261646, 1137004, 
    5805162, 4883369, 8789460, 9769240, 319012, -7877588, -1573772, 
    5192333, 1185446, 1302131, 4217472, -3471445};

下一步我想的是我将不得不遍历每个数组

for (int i = 0; i < one.Length; i++)
{
    int xValue = one[i];

    for (int j = 0; j < two.Length; j++)
    {
        int yValue = two[j];
    }
}

现在我有了每个数组的索引,我需要检查 xValue 的索引是否小于 yValue 的索引

if (xValue < yValue)
{
   // dO SOMETHING HERE
}
if (yValue < xValue)
{
  // Do Something HERE
}

我感到困惑的地方是,根据我的理解,C# 不能将新值推送到数组中,它需要是数组的新实例并复制?

所以我试着做

if (xValue < yValue)
{
  Array.Copy(one, x, 13);
}
if (yValue < xValue)
{
 Array.Copy(two, x, 13)
}

两个数组都有 26 个值,因此需要创建一个包含 13 个值的新数组来插入检查值,但是 Array.Copy 似乎无法让数组越界检查下限。

我只是对在索引处检查两个数组的值感到困惑,然后获取检查值中的最小值,然后取该小值并将其插入到新数组中,然后使用 foreach 循环来迭代它并将值打印到控制台。 面部手掌

您可以使用 LINQ 的 Zip 来实现:

int[] smallest = one.Zip(two, (o, t) => Math.Min(o,t)).ToArray();

本质上,Zip 会将这两项都提供给 lambda 表达式,让您可以按照您认为合适的方式组合它们。在这种情况下,我们只选择最小值 return 它。

Try it online

基本上,你需要在声明的时候定义新数组的size。使其大小与 one 相同。然后通过比较索引 i.

处每个数组中的项目,在每次迭代中添加 onetwo 中的最小项目
int[] smallest = new int[one.Length]; 

for (int i = 0; i < one.Length; i++)
{
    if (one[i] < two[i])
    {
        smallest[i] = one[i];
    }
    else 
    {
        smallest[i] = two[i];
    }
}