0
我想知道如何使用謂詞過濾器過濾集合$視圖。我在C#中看到了很多關於謂詞過濾器的例子,但PowerShell並沒有多少例子。在PowerShell中看到一個有效的例子會很棒。PowerShell observablecollection謂詞過濾器
基本上,當我將過濾器變量設置爲字符串並刷新$ 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()
+1只是一個註釋:scriptblock可以是'{$ args [0] -match $ filter}'爲了簡短。 –
@Robert - 真棒! .....我以前用匹配,包含等方式嘗試過這樣的東西,不知道爲什麼它以前沒有工作,但是這個完成並且完美。謝謝 :) – Kiran