Sto cercando di utilizzare LINQ in PowerShell. Sembra che questo dovrebbe essere interamente possibile dal momento che PowerShell è costruito su .NET Framework, ma non riesco a farlo funzionare. Ad esempio, quando provo il seguente codice (forzato):È possibile utilizzare LINQ in PowerShell?
$data = 0..10
[System.Linq.Enumerable]::Where($data, { param($x) $x -gt 5 })
ottengo il seguente errore:
Cannot find an overload for "Where" and the argument count: "2".
Non importa il fatto che questo potrebbe essere realizzato con Where-Object
. Il punto di questa domanda non è trovare un modo idiomatico per eseguire questa operazione in PowerShell. Alcune attività potrebbero essere anni luce più facili da fare in PowerShell se potessi usare LINQ.
La più alta votato risposta a questa domanda potrebbe suggerire che non è possibile utilizzare gli operatori LINQ in PowerShell http://stackoverflow.com/questions/2869967/how-to-query -list-in-powershell – DeanOC
'[System.Linq.Enumerable] :: Dove ($ data, [Func [oggetto, bool]] {param ($ x) $ x -gt 5})' – PetSerAl
@PetSerAl Dire cosa! Sei fantastico! Puoi aggiungerlo come risposta e puoi approfondire il motivo per cui funziona, ma questo: '[System.Linq.Enumerable] :: Where ($ data, [System.Func [int, bool]] {param ($ x) $ x -gt 5}) ', no. Supponendo che tu sappia il perché, cioè. –