0

在我遇到的所有示例中,管道单子仅在进行分配时才被破坏。那是:

$result = ls | %{$_.FullName} | select -first

在没有赋值的情况下,上述语句的输出是一个只有一个项目的管道(由于使用select -first),默认为写入write-host

是否可以破坏管道 monad,以便结果是单个值而不将其分配给变量或等效项(例如,将结果作为参数传递给接受字符串的 Cmdlet)

(相当于我所追求的 LINQ 是,它通过返回第一个实际值First()来打破单子)IEnumerable

注意:我对这个问题的答案没有实际用途,它只是学术性的。

4

1 回答 1

0

编辑Roman 是对的,不知道它对我来说是如何工作的。更新。

似乎最简单的方法是简单地访问第一项:

( @{Value = 1}, @{Value = 2} )[0].Value

如果没有物品,它将优雅地面对:

@()[0].Value
于 2012-05-04T12:08:04.747 回答