我在Powershell
中有两个不同的对象:
一个是使用"Project"
实例化New-Object
的类。其中每个都包含2个properties
。
第二个只是一个字符串数组。
现在,我想删除Project
数组中不在第二个数组中的项目。
例如。在Linq
,我会做这样的事情:
var result = from item in arrayOfStrings
from project in arrayOfProjects
where project.Property2 == item
select project;
此查询会在第一个列表中找到不在第二个列表中的任何内容。
我尝试过但没有成功:
$result = $projects | Where-Object { $_.Property2 -eq $arrayOfStrings | Select-Object }
谢谢
修改
该课程如下:
public class Project
{
public string Name {get; set;}
public string Guid {get; set;}
}
第二个数组刚刚填充了一些Guids。我希望得到$queryResult
与第二个数组中的项目。
答案 0 :(得分:3)
$projects | Where-Object { $arrayOfStrings -Contains $_.Name }
或使用" in"操作者:
$projects | Where-Object { $_.Name -in $arrayOfStrings }