# in both $copy = New-Object'System.Collections.Generic.HashSet[int32]'$set1 $copy.IntersectWith($set2) "In Both" "$copy"
# combine $copy = New-Object'System.Collections.Generic.HashSet[int32]'$set1 $copy.UnionWith($set2) "All Combined" "$copy"
# exclusive $copy = New-Object'System.Collections.Generic.HashSet[int32]'$set1 $copy.ExceptWith($set2) "Exclusive in Set 1" "$copy"
# exclusive either side $copy = New-Object'System.Collections.Generic.HashSet[int32]'$set1 $copy.SymmetricExceptWith($set2) "Exclusive in both (no duplicates)" "$copy"
Original Sets:
1 2 5 7 9 12
1 2 5 12 111
In Both
1 2 5 12
All Combined
1 2 5 7 9 12 111
Exclusive in Set 1
7 9
Exclusive in both (no duplicates)
7 9 111
# short name for "Integer" data type [int]12.4 # official .NET type name [system.int32]12.4 # here is how you get there [int].FullName # with official names, the namespace "System" is always optional [int32]12.4
# suppress errors by default $ErrorActionPreference = 'SilentlyContinue' # if a command runs into an error... Get-Process-Name zumsel # ...then $? is $false, and you can exit PowerShell # with a return value, i.e. 55 if (!$?) { exit55 }