转换数组中所有对象的属性数据类型

nei*_*zan 3 powershell powershell-5.0

假设我有一个对象数组:

$a = @(
    @{ Name = "A"; Value = "2016-01-02" },
    @{ Name = "B"; Value = "2016-01-03" },
    @{ Name = "C"; Value = "2016-01-04" }
)
Run Code Online (Sandbox Code Playgroud)

Value物业目前为String. 我想将Value每个对象的属性转换为DateTime. 我可以用一个for循环来完成这个,但我想知道是否有更直接的方法来做到这一点。

Tes*_*ler 5

是的,计算属性。

$a | select @{N='Name';E={$_.Name}}, @{N='Value';E={ [datetime]$_.Value }}
Run Code Online (Sandbox Code Playgroud)

  • @neizan,您可以使用最短的明确版本(这也适用于函数/cmdlet 的参数),因此 `Exp` 很好,`Nm` 不行,`N`、`Na`、`Nam` 都可以。 (2认同)