gpt4 book ai didi

arrays - 如何使用 Powershell 通过其值查找数组中元素的索引

转载 作者:行者123 更新时间:2023-12-02 23:03:09 25 4
gpt4 key购买 nike

我在 Powershell 中有一组自定义对象。每个对象都有一个唯一的引用,可以在数组中查找它,还有一个我希望稍后使用的值,该值不一定是唯一的。该数组在 for 循环中填充,如下所示

#Create empty array
$array1 = @()

#Populate array
foreach($otherElement in $otherArray){
#Create custom array element
$arrayElement = New-Object PSObject

#Update Credential element
$arrayElement | Add-Member -type NoteProperty -Name 'objRef' -Value $($otherElement.getAttribute("ref") )
$arrayElement | Add-Member -type NoteProperty -Name 'objValue' -Value $($otherElement.getAttribute("someValue") )

#Add element to array
$array1 += $arrayElement
}

构建数组后,我想以某种方式访问​​与正确的 objRef 相对应的 objValue。我知道您可以使用 -contains 参数测试数组是否包含值,但我不知道如何获取具有该值的对象的索引。

基本上这个数组就像一个查找表。我想要一个函数放入 objRef 以获取 objValue。

本例中的 objValue 是一个 System.Management.Automation.PSCredential,为了安全起见,每个对象的密码都是在运行时输入的。在工作中,有时我必须使用相同的 5 个凭据在不同的机器上安装相同的软件 30 次,弄清楚这一点将帮助我重新自动化该过程。

提前致谢!

最佳答案

PowerShell 基于 .NET,因此 everything arrays in .NET can do ,他们可以在 PowerShell 中完成。特别是,由于它们实现了 IList,因此它们具有 .IndexOf method : @(10, 4, 6).indexof(6) 返回 2

当然,在您的特定情况下,哈希表更合适,因为查找值的时间是恒定的,而搜索数组则需要线性时间。这在小型数组的情况下无关紧要,但如果您在循环中执行操作,则加起来很快。

关于arrays - 如何使用 Powershell 通过其值查找数组中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com