(我知道这听起来像重复,但听我说)
给定以下代码,如果Select-Object等效于LINQ Select,则输出应为@("o", "n", "e")
"one", "two" | %{$_.GetCharArray()} | select -first 1
Run Code Online (Sandbox Code Playgroud)
但是,由于输出是"o",这告诉我Select-Object实际上行为与LINQ相同SelectMany而不是Select.
很多问题是:Select在PowerShell中是否存在直接等价物(即,不会合并管道中的集合的那个)
这不是关于select而是关于展开由ToCharArray()管道获得并发送到管道的数组.为了使用标准获得预期结果,select我们应该防止展开.这通常通过使用一元运算符来完成,该运算符,返回具有单个项的数组.在我们的例子中,这些项目是数组.它们没有展开,它们按原样发送到管道.因此,select -first 1选择第一个项目,它是一个包含3个项目的数组.
"one", "two" | %{, $_.ToCharArray()} | select -first 1
Run Code Online (Sandbox Code Playgroud)
这给出了3个项目:o,n,e.
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |