首页 > 解决方案 > 如何将两个单维数组中的数字相加并将其添加到powershell中的第三个列表中

问题描述

需要注意的是,我真的想以算术方式添加数字,而不是将它们连接起来,实际上是 1+1 (2);2+2 (4); 所以在列表中添加数字。对困惑感到抱歉。

我有两个数组,需要将它们加在一起:

$Array1 = @(1,2,3,4,5)
$Array2 = @(2,3,4,5,1)

我需要遍历每个元素并将它们加在一起(算术),以便我得到:

1+2
2+3
3+4

在一个数组中。我怎样才能快速做到这一点?我正在使用powershell 5.1。

标签: arrayswindowspowershell

解决方案


我怎样才能快速做到这一点?

假设这是您问题的重要部分,请将工作转移到已编译的 C# 代码中。for亚伯拉罕 Zinala 的回答中的循环对我来说在约 4 秒内运行了超过一百万个项目数组。C# 中的相同循环运行时间约为 0.5 秒:

Add-Type -Language CSharp @"
using System;
using System.Collections.Generic;

namespace AddHelper
{
    public static class Adder
    {
        public static int[] AddArrays(int[] array1, int[] array2) 
        {
            int[] result = new int[array1.Length];
            for (int i = 0; i < array1.Length; i++) {
                result[i] = array1[i] + array2[i];
            }
            return result;
        }
    }
}
"@;

$result = [AddHelper.Adder]::AddArrays($Array1, $Array2)

将 PowerShell 和 C# 中的所有内容从使用数组转换为使用[System.Collections.Generic.List[int]],将 ~500ms 降低到 ~430ms。


推荐阅读