【发布时间】:2022-03-11 07:38:18
【问题描述】:
我正在尝试在 PowerShell 中使用 LINQ。看起来这应该是完全可能的,因为 PowerShell 是建立在 .NET Framework 之上的,但我无法让它工作。例如,当我尝试以下(人为的)代码时:
$data = 0..10
[System.Linq.Enumerable]::Where($data, { param($x) $x -gt 5 })
我收到以下错误:
找不到“Where”和参数计数的重载:“2”。
不要介意这可以通过Where-Object 完成。这个问题的重点不是找到一种在 PowerShell 中执行此操作的惯用方式。如果我可以使用 LINQ,在 PowerShell 中执行某些任务会容易很多。
【问题讨论】:
-
对该问题的最高投票答案表明您不能在 PowerShell 中使用 LINQ 运算符stackoverflow.com/questions/2869967/…
-
我觉得奇怪的是,你会对
Where-Object说“没关系”,只是转身谈论一种“惯用的”方式--Where-Object是 PowerShell 的事实上惯用的方式来做到这一点。如果您真的想要 LINQ(而不是类似 LINQ 的 cmdlet),我建议您研究二进制 cmdlet;这样,您就可以提交集合并在其应有的位置使用 LINQ(C# 或 VB.NET)。
标签: linq powershell