arrays - 如何按属性检查对象成员是否存在于数组中?
问题描述
无法理解如何按属性检查对象成员是否存在于数组中。
我有以下对象:
PS> $siteUser
Id Title LoginName Email
-- ----- --------- -----
1305 cinuwyl@banit.club i:0#.f|membership|urn%3aspo%3aguest#cinuwyl@banit.club cinuwyl@banit.club
我想检查membership
属性中的字符串是否LoginName
存在于数组中:
federateddirectoryclaimprovider
tenant
membership
我只是通过指定数组索引来获得匹配membership
:
$siteUsers.LoginName | Where-Object {$_ -match $inclusionObjects[2]}
但是,这需要我事先知道匹配字符串的数组索引。
我尝试过但没有结果的另一件事是:
$siteUsers | Where-Object {$inclusionObjects | ForEach-Object {$_ -match $_.LoginName}}
有没有办法遍历数组中的每个项目?
解决方案
要检查列表中的任何单词是否与 匹配$siteUsers.LoginName
,您可以使用以下命令:
$siteUsers = [pscustomobject]@{
Id=1305;
Title='cinuwyl@banit.club';
LoginName='i:0#.f|membership|urn%3aspo%3aguest#cinuwyl@banit.club';
Email='cinuwyl@banit.club'
}
$inclusionObjects = [string[]]'federateddirectoryclaimprovider','tenant','membership'
$predicate = [Func[string,bool]]{$siteUsers.LoginName.Contains($args[0])}
[System.Linq.Enumerable]::Any($inclusionObjects, $predicate)
推荐阅读
- jenkins - Jenkins Pipeline - 重新启动时如何获取内部版本号?
- python - 在我的网络抓取中,一些 div 没有出现
- django - Django 无法显示保存在数据库中的图片
- python - 通过浏览器访问端点时,CreateAPIView 使用 st() 函数返回 TypeError
- ios - 从 Laravel 发送 Firebase 推送通知
- graphql - 如何将 GraphQL 查询中的数据传递到以编程方式生成的页面上?
- python - 将两个数据框合并为一个新的数据框,其中唯一的项目标记为 1 或 0
- angular - 如何使用httpclient作为二进制文件以角度加载字体文件(ttf和otf)以使用opentype.js进行处理
- css - 如何在 LESS 中使用循环来为排版创建特定的类名?
- sql - Oracle查询从多维表中获取关系数据集结果