创建其中包含单个数组的锯齿状\多维数组

2023-11-29

我目前遇到一个脚本问题,该脚本根据传递给它的一组动态服务器\优先级构建数组。例如,基于以下输入

server1,200
server2,200

我想构建一些看起来像

$arr=@() #at this point I have an empty array
$arr+=@("server1",200) #at this point, I would expect to have an array
                       #that itself holds another array

然而此时,当我运行这个时,我得到了意外的输出

echo $arr.count # result is 2, rather than the 1 I would expect
                # It appears to be treating $arr as a single array
                # with two members (server1 and 200) rather than an array
                # that holds an array, which itself has two members

但是,如果我向数组添加另一个空数组:

$arr = @()
$arr += @()
$arr += $("server1",200)
$arr.count # output is 2, which is the desired result

我得到了我想要的结果。我的问题是..我可以获得我想要的锯齿状\多维数组的结果,其中只有一个数组吗?这不会是一种常见的情况,因为大多数时候我会处理多组项目,但是我想考虑所有情况,这可能是弹出的情况。我只是想不必添加额外的步骤来过滤掉空数组来满足这一点。

任何投入将不胜感激。


您的 2 个示例产生完全相同的结果,一个包含 2 个元素的平面数组,因为附加一个空数组 ($arr+=@()) 不会以任何方式修改数组。

示范:


PS C:\> $arr = @()
PS C:\> $arr += @('server1', 200)
PS C:\> $arr.Count
2
PS C:\> Format-Custom -InputObject $arr
server1
200  

PS C:\> $arr = @()
PS C:\> $arr += @()
PS C:\> $arr += @('server1', 200)
PS C:\> $arr.Count
2
PS C:\> Format-Custom -InputObject $arr
server1
200  

当您使用追加运算符 (+=)有两个数组 PowerShell 基本上连接数组。要将数组作为嵌套元素附加到第一个数组,您需要在第二个数组前面添加一元数组构造运算符 (,).


PS C:\> $arr = @()
PS C:\> $arr += ,@('server1', 200)
PS C:\> $arr += ,@('server2', 200)
PS C:\> $arr.Count
2
PS C:\> Format-Custom -InputObject $arr

[
  server1
  200
]

[
  server2
  200
]  

如果您事先知道元素的数量,您还可以预先创建所需大小的数组并将嵌套数组分配为其元素。这不需要逗号运算符。


PS C:\> $arr = New-Object Object[] 2
PS C:\> $arr.Count
2
PS C:\> $arr[0] = @('server1', 200)
PS C:\> $arr[1] = @('server2', 200)
PS C:\> Format-Custom -InputObject $arr

[
  server1
  200
]

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

创建其中包含单个数组的锯齿状\多维数组 的相关文章

  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • 在多个数组中搜索字符串,然后设置 var - jQuery

    我正在寻找基于字符串存在于哪个数组中设置一个变量 例如 var primary red blue yellow var secondary orange purple green 然后检查 purple 并返回它在 secondary 数组
  • 二维数组的 MPI 数据类型

    我需要将一个整数数组的数组 基本上是一个二维数组 从根传递给所有处理器 我在 C 程序中使用 MPI 如何声明二维数组的 MPI 数据类型以及如何发送消息 我应该使用广播还是分散 你需要使用播送 http www netlib org ut
  • JavaScript 数组和对象除了 .length 属性之外有什么区别?

    我认为 JS 数组只是一个哈希映射 它只接受整数值作为键 length 属性只返回最大索引 1 这是正确的吗 还有其他区别吗 您错了 数组可以有任何你想要的键 此外 他们还继承了Array原型
  • 填充 datagridview

    我正在开发一个表单 它将在所有连接的驱动器中搜索 PST 文件 我可以使用以下命令让它工作 Get PSDrive PSProvider filesystem get childitem root include pst r select
  • 使用 UTF-8 编码的 Powershell 字符串变量

    我检查了许多与此相关的问题 但找不到解决我的问题的东西 基本上 我想将 UTF 8 编码的字符串存储在变量中 然后使用该字符串作为文件名 例如 我正在尝试下载 YouTube 视频 如果我们打印视频标题 则会显示非英文字符 ytd这是you
  • 如何在javascript中动态向对象数组添加值?

    这是一个对象数组 var data label 1 value 12 label 1 value 12 label 1 value 12 label 1 value 12 我如何动态地为这些添加值 我尝试了以下代码但没有成功 var lab
  • 导入模块 WebAdministration 不会从脚本加载,但会从命令行加载

    我正在进行一个使用的项目PowerShell编写构建脚本 该构建利用了WebAdministration模块来管理本地 IIS 实例 当我运行构建脚本时 尝试导入时会引发以下错误WebAdministration 错误 06 29 2016
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • 在 Powershell 4 中压缩和解压缩文件

    我使用的是 Windows Server 2012 R2 64 位 我有 powershell 版本 4 可用 我正在尝试压缩和解压缩文件 当我尝试 Write Zip 命令时 它会抛出以下错误 Write Zip 术语 Write Zip
  • 如何从 C# 运行 PowerShell 脚本

    我正在尝试使用 C 运行 PowerShell 脚本 但没有成功 这是我的功能 private void ExecutePowerShellCommand string scriptfile RunspaceConfiguration ru
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • char*str={"foo",...} 和 char str[][5]={"foo",...} 数组定义之间有什么区别?

    Case 1 当我写作时 char str what is this then str i newstring 是有效的 而str i j j 是无效的 Case 2 当我写作时 char str 5 what is this then s
  • Angular JS 中的数组

    我是 Angular JS 新手 我正在将元素推送到数组中 然后想使用 ng repeat 在 html 中显示 scope groupedMedia Adding elements through a for loop scope gro
  • 具有恒定长度的 System.arraycopy

    我正在玩 JMH http openjdk java net projects code tools jmh http openjdk java net projects code tools jmh 我偶然发现了一个奇怪的结果 我正在对制
  • 将 NumPy 数组按元素映射到更多维度的数组

    我想要地图anumpy array从 NxM 到 NxMx3 其中三个元素的向量是原始条目的函数 lambda x f1 x f2 x f3 x 然而 像这样的事情numpy vectorize不允许改变尺寸 当然 我可以创建一个零数组并进
  • strtok - 如何避免换行并放入字符串数组?

    如果我欺骗了主题 我真的很抱歉 我在这里搜索但没有结果 我有代码 void split char str char splitstr char p char splitbuf 32 int i 0 p strtok str while p
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo

随机推荐