首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell查询哈希表的嵌套子元素

PowerShell查询哈希表的嵌套子元素
EN

Stack Overflow用户
提问于 2022-03-03 21:19:16
回答 1查看 157关注 0票数 2

在PowerShell中,我想得到所有使用球的运动的数量。所面临的挑战是,它们的级别低于直接使用Where对象查询所能访问的级别。这是哈希表:

代码语言:javascript
复制
$league = @{
   school = @{
      name = 'Lincoln High School' 
      levels = ('9','10','11','12')
      } 
   sports = @{
      football = @{ 
         coed = 'b'
         season = 'fall'
         balls = $true
      }
      hockey = @{ 
         coed = 'b'
         season = 'winter'
         balls = $false
      }
      lacrosse = @{ 
         coed = 'g'
         season = 'spring'
         balls = $true
      }
      swim = @{ 
         coed = 'c'
         season = 'winter'
         balls = $false
      }
   }
}

如何设计查询以跳过balls?每项运动在关键级别上都有不同的名称,通配符似乎不起作用。

代码语言:javascript
复制
( $league.sports | Where-Object { $_.[?].balls -eq $true } ).count

我需要一些东西来连接到这项运动的儿童元素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-03 21:28:25

使用.where(..)

代码语言:javascript
复制
($league['sports'].GetEnumerator().Where{$_.Value.Balls}).Count

使用Where-Object

代码语言:javascript
复制
($league['sports'].GetEnumerator() | Where-Object {$_.Value.Balls}).Count

如您所见,这两种方法都需要使用.GetEnumerator() method

另一种更冗长的选择是:

代码语言:javascript
复制
$sports = $league['sports']
$sports.PSBase.Keys.Where{$sports[$_]['balls']}.Count
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71343929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档