PowerShell 4.0 (final version as found in Windows 8.1) has Foreach and Where built directly into arrays. This is a geek stuff, so there is no apparent advantage to it over using the traditional pipeline (except maybe for speed).
This line will get only uneven numbers from a list of numbers:
@(1..10).Where({$_ % 2})
And this line will get only services that are actually running:
@(Get-Service).Where({$_.Status -eq 'Running'})
And there is more (undocumented) stuff. This line will get all numbers that are greater than 2, but only the first 4 of them:
@(1..10).Where({$_ -gt 2}, 'skipuntil', 4)
Finally, this line will do the same, but then converts them to the TimeSpan objects:
@(1..10).Where({$_ -gt 2}, 'skipuntil', 5).Foreach([Timespan])