C# 比较Powershell中的对象数组

C# 比较Powershell中的对象数组,c#,arrays,linq,powershell,C#,Arrays,Linq,Powershell,我在Powershell中有两个不同的对象: 一种是使用用新对象实例化的项目类。每个属性都包含2个属性 第二个是字符串数组 现在,我想删除Project数组中不在第二个数组中的项目 $projects | Where-Object { $arrayOfStrings -Contains $_.Name } 比如说。在Linq中,我会这样做: var result = from item in arrayOfStrings from project in arrayOf

我在Powershell中有两个不同的对象:

一种是使用用新对象实例化的项目类。每个属性都包含2个属性

第二个是字符串数组

现在,我想删除Project数组中不在第二个数组中的项目

$projects | Where-Object { $arrayOfStrings -Contains $_.Name }
比如说。在Linq中,我会这样做:

var result = from item in arrayOfStrings
             from project in arrayOfProjects
             where project.Property2 == item
             select project;
public class Project
{
    public string Name {get; set;}
    public string Guid {get; set;}
}
此查询将获取第一个列表中不在第二个列表中的任何内容

我的尝试没有成功:

$result = $projects | Where-Object { $_.Property2 -eq $arrayOfStrings | Select-Object }
多谢各位

编辑

该类如下所示:

var result = from item in arrayOfStrings
             from project in arrayOfProjects
             where project.Property2 == item
             select project;
public class Project
{
    public string Name {get; set;}
    public string Guid {get; set;}
}
第二个数组中只填充了一些guid。我想对第二个数组中的项目获得$queryResult

$projects | Where-Object { $arrayOfStrings -Contains $_.Name }
或使用in运算符:

$projects | Where-Object { $_.Name -in $arrayOfStrings }
或使用in运算符:

$projects | Where-Object { $_.Name -in $arrayOfStrings }

您不能编辑问题并显示对象的结构吗?否则很难知道你在问什么。但是,我认为您不需要最终的Select对象,在那里,Object将执行Select操作。我在编辑中添加了该类。是的,我想我不需要它了。但是,我对Powershell$projects不太熟悉|在$ArrayOfstrings中,对象属性2-您能否编辑问题并显示对象的结构?否则很难知道你在问什么。但是,我认为您不需要最终的Select对象,在那里,Object将执行Select操作。我在编辑中添加了该类。是的,我想我不需要它了。但是,我对Powershell$projects不太熟悉,其中$arrayOfStringsNote中的对象属性2是从Powershell版本3开始的。非常感谢你们两位。Note是从Powershell版本3开始的。非常感谢你们两位