gpt4 book ai didi

arrays - 如何查找 Powershell 数组是否包含另一个数组的对象

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

我在 Powershell 中有两个数组。每个数组都包含一个对象数组。这些对象有两个属性:

名称:字符串
Id:GUID

第一个 Array 有 4413 个对象,第二个 Array 有 4405 个对象。计数无关紧要,但我提到它们只是为了注意 Array1 和 Array2 的内容不同。

这是我当前的代码(伪):

#Fill Array1
$Array1 = Fill-Array1

#Fill Array2
$Array2 = Fill-Array2

#Loop through the arrays and write out the names of all items in Array2 that are different than Array1
ForEach($Val in $Array2)
{
$Name = $Val.Name

If($Array1 -notcontains $Val) //this does not work
{
Write-Host $Name
}
}

检查 Array1 中对象是否存在的正确方法是什么?我是执行嵌套循环的唯一选择吗?

使用 Manu P 中的答案进行更新下面,我是如何实现该解决方案的:

#Fill Array1
$Array1 = Fill-Array1

#Fill Array2
$Array2 = Fill-Array2

#Compare the arrays
$ComparedResults = Compare-Object -ReferenceObject $Array1 -DifferenceObject $Array2 #I left out the -IncludeEqual param because I don't care about those results

ForEach($Result in $ComparedResults)
{
If($Result.SideIndicator -eq "=>") #the value in Array2 is different than Array1
{
$Val = $Result.InputObject

Write-Host $Val.Name
}
}

最佳答案

您可以使用Compare-Object cmdlet:

Compare-Object -ReferenceObject $Array1 -DifferenceObject $Array2 -IncludeEqual

https://learn.microsoft.com/fr-fr/powershell/module/Microsoft.PowerShell.Utility/Compare-Object?view=powershell-5.0

https://technet.microsoft.com/fr-fr/library/ee156812.aspx

关于arrays - 如何查找 Powershell 数组是否包含另一个数组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45596358/

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