什么是PowerShell相当于LINQ的Select?

(我知道这听起来像重复,但听我说)

给定以下代码,如果Select-Object等效于LINQ的Select,则输出应为@(“o”,“n”,“e”)

"one", "two" | %{$_.GetCharArray()} | select -first 1

但是,由于输出是“o”,这告诉我Select-Object实际上与LINQ的SelectMany相同而不是Select.

很多问题是:在PowerShell中是否存在直接等效于Select(即,不会合并管道中的集合的那个)

这不是关于选择,而是关于展开由ToCharArray()获得并发送到管道的数组.为了使用标准选择获得预期结果,我们应该防止展开.这通常通过使用一元运算符来完成,该运算符返回具有单个项的数组.在我们的例子中,这些项目是数组.它们没有展开,它们按原样发送到管道.因此,select -first 1选择第一个项目,该项目是具有3个项目的数组.

"one", "two" | %{, $_.ToCharArray()} | select -first 1

这给出了3个项目:o,n,e.

相关文章
相关标签/搜索