gpt4 book ai didi

powershell - 在高级函数中接受 where 子句

转载 作者:行者123 更新时间:2023-12-01 13:13:58 25 4
gpt4 key购买 nike

是否可以将 where 子句传递给高级函数?一个更清楚的例子;

$Fruits = @(
@{
Name = 'Kiwi'
Color = 'Green'
}
@{
Name = 'Banana'
Color = 'Yellow'
}
)

Function Get-Stuff {
Param (
[scriptblock]$Filter,
[hashtable[]]$Collection
)

$Collection.Where( { $Filter })
}

Get-Stuff -Filter { $_.Name -eq 'Kiwi' } -Collection $Fruits

在这种情况下,如果函数可以返回与 $Fruits.Where( { $_.Name -eq 'Kiwi' }) 相同的值,那就太好了。

最佳答案

作为ansgar-wiechers在上面的评论中指出,您必须删除外部脚本 block 文字 ({}):

$Fruits = @(
@{
Name = 'Kiwi'
Color = 'Green'
}
@{
Name = 'Banana'
Color = 'Yellow'
}
)

Function Get-Stuff {
Param (
[scriptblock]$Filter,
[hashtable[]]$Collection
)
# Subexpression removed.
$Collection.Where($Filter)
}

Get-Stuff -Filter { $_.Name -eq 'Kiwi' } -Collection $Fruits

关于powershell - 在高级函数中接受 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57460666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com