I needed a simple PowerShell code to generate hash tables with all possible pairs of a given array of strings. There are possibilities to use a similar method in .NET but I used only PowerShell functionality. This is my output:

$inputItems = 'aaa', 'bbb', 'ccc'
$pairItems = @()

$i = 0
foreach ($pairItemFirst in $inputItems)
{
    foreach ($pairItemSecond in ($inputItems | Where-Object -FilterScript { $_ -ne $pairItemFirst }))
    {
        $pairItems +=
        [ordered]@{
            PairNumber = $i
            First  = $pairItemFirst
            Second = $pairItemSecond
        }
    }
    $i++
}

$pairItems

Output:

Name       Value
----       -----
PairNumber 0
First      aaa
Second     bbb
PairNumber 0
First      aaa
Second     ccc
PairNumber 1
First      bbb
Second     aaa
PairNumber 1
First      bbb
Second     ccc
PairNumber 2
First      ccc
Second     aaa
PairNumber 2
First      ccc
Second     bbb
« Previous Next »