比较Powershell中的对象数组

时间:2015-07-23 14:49:41

标签: c# arrays linq powershell

我在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与第二个数组中的项目。

1 个答案:

答案 0 :(得分:3)

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

或使用" in"操作者:

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