我在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;}
    }
    

    第二个数组只是填充了一些Guid。我想获取第二个数组中的项目的$queryResult

    最佳答案

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

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

    关于c# - 比较Powershell中的对象数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31590874/

    10-15 10:03