我有两个数组,我想比较
的项目我有数组A [hi,no,lo,yes,因为]和数组B [mick,tickle,fickle,pickle,ni,hi,no,lo,yes,因为]
所以我想搜索A中的每个项目并与B中的每个项目进行比较,如果匹配则返回“有匹配”
答案 0 :(得分:4)
One-liner:
foreach ($elem in $A) { if ($B -contains $elem) { "there is a match" } }
但计算匹配可能更方便:
$c = 0; foreach ($elem in $A) { if ($B -contains $elem) { $c++ } }
"{0} matches found" -f $c
或者如果你想检查阵列是否相交:
foreach ($elem in $A) { if ($B -contains $elem) { "there is a match"; break } }
或者,如果您想检查$ A是否是$ B的子集:
$c = 0; foreach ($elem in $A) { if ($B -contains $elem) { $c++ } }
if ($c -eq $A.Count) { '$A is a subset of $B' }
最后是Compare-Object cmdlet,它实际上比上面的所有更好。示例(仅输出两个数组中存在的元素):
Compare-Object -IncludeEqual -ExcludeDifferent $A $B