我想知道如何使用谓词过滤器过滤集合 $view。我在 C# 中看到了许多谓词过滤器的示例,但对于 PowerShell 来说并不多。很高兴在 PowerShell 中看到一个工作示例。
基本上,当我将过滤器变量设置为字符串并刷新 $view 时,集合应该过滤以仅显示与过滤器匹配的行或对象。如果过滤器为空,则应显示整个对象集合。
我认为这应该在不使用任何表单的情况下在控制台中工作,但我无法在 PowerShell 中创建类型为 (system.predicate) 的过滤器。
$a = New-Object System.Collections.ObjectModel.ObservableCollection[object]
$svcs = gsv -ComputerName LocalHost |
select @{n="Server";e={$_.machinename}},Name,Displayname,status
$svcs | ForEach {
$a.Add((
New-Object PSObject -Property @{
Server = $_.server
Name = $_.name
Displayname = $_.displayname
Status = $_.status
}
))
}
$view = [System.Windows.Data.CollectionViewSource]::GetDefaultView($a)
$filter = "bits"
$view.Filter = "Predicate FIlter???"
$view.Refresh()