arrays - 如何将两个单维数组中的数字相加并将其添加到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。
解决方案
我怎样才能快速做到这一点?
假设这是您问题的重要部分,请将工作转移到已编译的 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。
推荐阅读
- python - 如何重新排序 Pandas 中的多索引列?
- python - 在递归中使用scrapy回调时xlsxwriter无法创建文件
- atomic - 使用 QWeb 模板在 Odoo 中进行原子设计
- php - PHP根据值对多维数组进行排序但得到意想不到的结果
- pascal - 帕斯卡 - 写出一个数字的所有除数并将它们相加
- c - 如何在 C 中创建自己的 floor 函数?
- mysql - Mysql子查询中MAX的使用
- c# - OnConfiguring 方法中的 System.TypeLoadException
- python - 熊猫:从列列表中检查列是否存在于df中
- c - 为什么我在涉及二维数组的代码中收到此错误?