用于向数组添加元素的 PowerShell 函数

2023-12-03

我对 PowerShell 还很陌生,并且正在尝试创建一些组合在一起的函数来创建和管理数组。我在使这些功能之一按预期工作时遇到一些问题。

我需要第二个函数(AddToArray)将元素添加到指定索引。任何现有元素都不能被覆盖或删除。

例如,如果我有一个具有四个索引的数组,并且所有索引的值均为 5,并且我调用函数 AddToArray 2 4。我需要在第三个索引中写入该函数,并将现有索引下移一位,因此现在的数组看起来像这样:

5
5
4
5
5

到目前为止,这是我的代码,显示了我的 CreateArray 函数和 AddToArray 函数的小代码片段。我已经尝试了一段时间了,但我就是看不到解决方案。

function CreateArray($Item1, $Item2)
{
    $arr = New-Object Array[] $Item1;

    # Kontrollerar om $Item2 har fått någon input och skriver in det i arrayen
    if ($Item2)
    {
        for($i = 0; $i -lt $arr.length; $i++)
        {
            $arr[$i] = $Item2;
        }
    }
    # Standard värde på arrayens index om inget värde anges vid funktionens anrop
    else
    {
        $Item2 = "Hej $env:username och välkommen till vårat script!";

        for($i = 0; $i -lt $arr.length; $i++)
        {
            $arr[$i] = $Item2;
        }
    }
    $script:MainArray = $arr;
}

function AddToArray ($index, $add)
{
    $MainArray[$index] = $add;
}

.NET 中的数组不直接支持插入,并且它们通常是固定大小的。 PowerShell 确实允许轻松调整数组大小,但如果数组变大并且您追加(导致调整大小)很多,则性能可能会很差。

完成您想要的操作的一种简单方法是从各个部分创建一个新数组,例如:

if ($index -eq 0) {
    $MainArray = $add,$MainArray
}
elseif ($index -eq $MainArray.Count - 1) {
    $MainArray += $add
}
else {
    $MainArray = $MainArray[0..($index-1)], $add, $MainArray[$index..($MainArray.Length-1)]
}

但这有点像喷涌。我会为此使用列表,它支持插入并且比数组更有效。

$list = new-object 'System.Collections.Generic.List[object]'
$list.AddRange((1,2,3,4,5))
$list.Insert(2,10)
$list

如果你确实需要一个数组,请调用$list.ToArray()方法,当你完成操作列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于向数组添加元素的 PowerShell 函数 的相关文章

  • 如果重复,则从数组中删除两个值 - JavaScript/jQuery

    我这里有一个数组 var myArr 1 1 2 5 5 7 8 9 9 现在我想删除重复的两个外观 所以想要的结果是not var myArr 1 2 5 7 8 9 but var myArr 2 7 8 基本上我知道如何删除重复项 但
  • 这种间接函数调用有什么好处?

    我在库中找到了以下代码 class Bar public bool foo int i return foo i private virtual bool foo int i 0 现在我想知道 为什么要使用这种间接方式 是否有任何理由说明上
  • C++ 通过引用传递动态分配的二维数组

    这个问题是基于之前提出的问题而提出的 通过已知大小的引用多维数组传递 https stackoverflow com questions 529109 c pass by reference multidimensional array w
  • PowerShell,如何增加变量名称?

    我目前正在编写一个解析 XML 文件的 PowerShell 脚本 它将一些解析的值保存为变量以供以后使用 例如 假设我的 XML 如下所示
  • PowerShell v4 中的本机内存泄漏?

    我安装的 PS v4 似乎存在泄漏 CLR版本 4 0 30319 34209构建版本 6 3 9600 17400 我运行以下命令 内存快速无限增长 while true New Object System Object 如果我跳出循环并
  • 如果未提供值,如何从 cmdlet 中省略 powershell 参数?

    我正在尝试执行下面的 Powershell 命令 在交换服务器上创建一个新的地址列表 其中包含名称 容器等参数 Container是可选输入 参数 如果未提供其值 如何从 cmdlet 中省略它 我尝试过IF有条件但但似乎不起作用 这里有什
  • 用于清除工作空间和转储存储的 R 全局函数

    我希望创建一个全局函数来清除我的工作区并转储我的内存 我将我的函数称为 cleaner 并希望它执行以下代码 remove list ls gc 我尝试在全局环境中创建该函数 但是当我运行它时 控制台仅打印该函数的文本 在我要获取的函数文件
  • 在汇编中初始化字符串数组

    我想创建一个数据数组 在初始化数据部分保存 5 个字符串 每个字符串正好有 4 个字符 每个字符串都有一些初始数据 例如第一个字符串的 abcd 第二个字符串的 efgh 等等 无效的 0任何字符串都不需要字符 如何用汇编语言初始化字符串数
  • 将所有文件与指定目录(和子目录)中的所有文件进行二进制比较

    我需要将目录及其子目录中包含的所有文件与同一目录及其子目录中包含的所有其他文件进行比较 并将匹配文件的路径记录到文本文件或 CSV 我意识到有一些软件工具可以做到这一点 但除非它可以在 Windows 中开箱即用 否则我将不被允许在我的网络
  • Java 泛型从类创建数组

    我有一个层次结构 其中正方形 三角形和圆形都从形状延伸 我有一个工作方法 public void someMethod File file new File File with squares ThirdPartyClass foo new
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • 如何从函数返回矩阵(二维数组)? (C)

    我创建了一个生成宾果板的函数 我想返回宾果板 正如我没想到的那样 它不起作用 这是函数 int generateBoard int board N M i j fillNum Boolean exists True initilize se
  • 如何实现 Vec 的修剪?

    Rust 提供了字符串的修剪方法 str trim http doc rust lang org stable std primitive str html method trim删除前导和尾随空格 我想要一个对字节串执行相同操作的方法 应
  • 从 numpy 数组中删除连续的 RGB 值

    我最初根据灰度图像的初始数组创建了一个子数组 从 numpy 数组中删除连续数字 https stackoverflow com questions 50743769 deleting consecutive numbers from a
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • 如何实现返回“弹出”元素(即数据/值)的“Pop”函数? (链表堆栈)

    对于如何实现同时弹出元素并将其作为返回值返回的单个函数感到困惑 到目前为止 我所看到的都是 pop 函数 它们返回指向堆栈新头的指针 这是一个开始 但是 define VALUE int typedef struct node t VALU
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • 如何在button.addTarget操作中发送多个按钮?斯威夫特3

    如何将button和button2发送到我的pressButton2函数中 当用户触摸按钮2时 我需要更改按钮和按钮2的颜色 当我的 button2 addTarget 看起来像这样时 我收到错误 表达式列表中存在预期表达式 import
  • 为什么这两种不同的构造数组的方式会产生不同的行为?

    当我以两种不同的方式构造一个 2 元素数组时 例如a and b 当我将一个元素添加到内部数组之一时 我得到两个不同的结果 这也会发生在append 根据构建每个之后的输出 我希望它们完全相同 julia gt a 2 element Ar
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14

随机推荐

  • 基于文件名的文件夹名称

    这实际上不是一个编码问题 我需要将所有文件放入单独的目录中 以便每个文件都有自己的目录 其名称基于文件名 因此 在我制作应用程序来执行此操作之前 有人知道可以执行此操作的软件吗 比如Automator什么的 无需构建应用程序 从 Windo
  • 现代 CPU 保持标志更新是否需要花费大量资源?

    据我了解 在现代无序 CPU 上 最昂贵的东西之一是状态 因为必须在多个版本中跟踪该状态 在许多指令中保持最新状态等 一些指令集 例如 x86 和 ARM 大量使用标志 这些标志是在成本模型不是现在的样子时引入的 并且标志只花费几个逻辑门
  • 如何检查用户是否在 Google Play 上对您的应用进行了评分?

    我想检查用户是否在 Google Play 上对我的应用程序进行了评分 而不是有多少颗星 只要他们是否有 如果他们没有 我将通过一个对话框提示他们 要求他们使用以下代码对其进行评分 startActivity new Intent Inte
  • MSBuild ITaskItem RecursiveDir 元数据消失

    我有一个自定义 MSBuild 任务 它处理一组文件并返回该文件的修改子集 基本上 我只是根据输入创建一个新的 ITaskItem 数组 跳过一些项目 但是 当此结果集返回到 MSBuild 时 RecursiveDir 元数据消失 在我的
  • 数据库连接字符串和排序规则

    是否可以在 MySql 连接字符串中设置连接排序规则以及如何设置 因为服务器上有用于新连接的默认设置 两件事我can t do 无法通话SET COLLATION CONNECTION打开连接后 因为我正在使用实体框架来为我执行所有调用正如
  • Java Swing 以饼图形式显示进度

    我想以饼图格式显示进度 有人可以帮忙吗 我有数据要显示 但如何以这种格式显示它 当我们下载文件时 Google Chrome 中会显示进度 根据 trashgod 提供的链接 这里是实现 馅饼 效果的一种方法 这仅处理不确定的进度条 但添加
  • 将 swifty json 数组保存到用户默认值

    我有一个 jsondata它提供以下信息 let data QuestionTitle Entomology is the science that studies Id 205 Options Option Insects Id 810
  • 从 PySpark 中的列加载 XML 字符串

    我有一个 JSON 文件 其中一列是 XML 字符串 我尝试在第一步中提取该字段并写入文件 并在下一步中读取该文件 但每一行都有一个 XML 标头标记 因此生成的文件不是有效的 XML 文件 如何使用 PySpark XML 解析器 com
  • 使用 jQuery 获取每个
  • 索引号
  • 我正在尝试获取少数的索引号 li 的 li 是 8 我正在尝试获取每个 li 的编号 在每个 li 上单击我都会执行此功能 var str amastorage li index alert str 这总是给我8 EDIT 这就是我得到它的
  • onResume 在视图模型中不起作用

    我的数据仅在创建时才获取 我使用视图模型 当按后退按钮时 它不会更新以前的数据 onresume 在此不起作用 我提到了这个 但没有一个有帮助 gt 对 ViewModel 中的活动生命周期做出反应 我需要帮助 提前致谢 活动 class
  • DataGrid 获取选定行的列值

    我正在尝试获取 DataGrid 中选定行的每一列的值 这就是我所拥有的 private void dataGrid1 CellEditEnding object sender DataGridCellEditEndingEventArgs
  • $("html").animate({scrollTop: $(document).height() }, "慢");如果它在底部,请不要滚动它

    我有三个隐藏 div 的按钮 当我单击一个按钮时 我希望内容滚动到底部 然后当我单击另一个按钮时 我希望页面保持在原来的位置 但加载新内容 我尝试过变量和 if 语句 var i 0 link slide13 click function
  • 创建一个核心日期实体实例但不希望它被存储(非持久)

    有时我需要实例化核心数据实体来存储一些信息以供临时使用 但我不需要将它存储到数据库中 目前我创建了一个类似的类 其结构与 CoreDateEntity 相同 它运行良好 但我必须在两个模型之间进行许多数据传输 有没有更好的方法来处理这个问题
  • C# - 将 JSON 反序列化为 ValueTuple

    我正在尝试反序列化 foo 1 bar false foo 2 bar false into List lt string bool gt 类型 JsonConvert DeserializeObject
  • 修改Android选中下拉项的颜色

    如何修改 Android Honeycomb 应用程序中 Spinner 上所选项目的文本颜色 编辑 我有一个正在膨胀的旋转布局 是否可以在此微调器中添加属性来更改文本颜色 我能够更改背景 例如使用微调器上的 android backgro
  • 设计可插入积分和徽章系统[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 如何设计一个可插拔积分和徽章系统 既易于打开和关闭 又易于变成自己的模块 经过多次试验和错误 我得出的结论是 积分和徽章与应用程序的唯一业务逻辑过于交织在一起 无法以简单的方式将它们具
  • 获取长列表并将其重新整形为数据框“行” - pandas python 3

    我有一长串项目 我想按照设定的时间间隔将其放入数据框中 我有另一个带有 列名称 的列表 E g colnames Title Date Abstract ID Volume data a b c d e f g h i j k l m n
  • Python pandas 计算字符串中正则表达式匹配的数量

    我有一个包含句子的数据框和按主题分组的术语词典 我想在其中计算每个主题的术语匹配数 import pandas as pd terms animals fox deer eagle people John Rob Steve games b
  • 在插入时插入当前日期

    我有一个具有以下结构的表 id some column another column inserted edited 1 2014 08 15 2016 03 04 2 2015 09 16 2016 10 07 3
  • 用于向数组添加元素的 PowerShell 函数

    我对 PowerShell 还很陌生 并且正在尝试创建一些组合在一起的函数来创建和管理数组 我在使这些功能之一按预期工作时遇到一些问题 我需要第二个函数 AddToArray 将元素添加到指定索引 任何现有元素都不能被覆盖或删除 例如 如果