A: 

Here's what I'm trying to use, and I think it will work

$table = @(
    @{ 
        Foo = "A"
        Bar = "X
        Value = 1
    },
    @{ 
        Foo = "A"
        Bar = "Y"
        Value = 2
    },
    @{ 
        Foo = "B"
        Bar = "Z"
        Value = 3
    }
)

$table | foreach {
    $row = $_

    $foo = $input.Foos | where {
        $_.Name -eq $row.Foo
    }

    $bar = $input.Bars | where {
        $_.Name -eq $row.Bar
    }

    if ($foo -and $bar) {        
        # processing
    }        
}
Jay Bazuzi