[英]Remove array from array in powershell
我有 2 個 arrays 像這樣:
$array1 = @('Item10', 'Item20', 'Item30', 'Item40')
$array2 = @('Item1', 'Item3')
我希望我的最終數組是這樣的:
$arrayfinal = @('Item30', 'Item40')
含義:從array1中的array2中找到'like'Item1,所以刪除它!
我試過:使用“-like”運算符,“-ne”運算符,嘗試添加“*”並使用“like”運算符,但找不到我想要的。
謝謝你的幫助
您需要針對$array2
中的每個可能前綴測試$array1
中的每個值,直到獲得匹配(或不匹配) - 換句話說,嵌套過濾器。
我的首選方法是將.Where({...}, 'First')
嵌套Where-Object
:
$arrayfinal = $array1 |Where-Object {$item = $_; $array2.Where({$item -like "${_}*"}, 'First')}
'First'
模式將使.Where()
在第一個項目滿足條件后立即返回,從而在每次迭代中不必要地遍歷所有$array2
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.