如何在Powershell中的hastable属性上执行where对象?

沙可

在我的foreach中,我想对另一个对象变量进行where对象过滤。

具体来说,下面是我的对象数组的两个实例($ arrayCounts):

[0]: [Hastable: 2]
  [0]: [Occurences, 6]
    Key: "Occurences"
    Value: 6
  [1]: [Ip, "10.10.10.10"]
    Key: "Ip"
    Value: "10.10.10.10
[1]: [Hastable: 2]
  [0]: [Occurennces, 3]
    Key: "Occurences"
    Value: 3
  [1]: [Ip, "10.10.10.11"]
    Key: "Ip"
    Value: "10.10.10.11"

这是我要执行where-object的循环:

foreach ($result in $resultHash.GetEnumerator()) {
$currentCountResultObject = @{

    Ip         = $result.Key
    Legitimacy = $result.Value
    Occurences = $arrayCounts.Occurences.Value | Where-Object ($result.Key -eq $arrayCounts.Ip.Value)  
    }
    $countResultObject += $currentCountResultObject
}

“ Ip”和“ Legitimacy”成员已经很好地完成了工作,但是由于我的错误的where-object表达式,“出现次数”保持为空。

预期的输出是:

[0]: [Hastable: 3]
  [0]: [Legitimacy, "legitimate"]
    Key: "Legitimacy"
    Value: "legitimate"
  [1]: [Ip, "10.10.10.10"]
    Key: "Ip"
    Value: "10.10.10.10"
  [2]: [Occurences, 3]
    Key: "Occurences"
    Value: 3
[1]: [Hastable: 3]
  [0]: [Legitimacy, "unknown"]
    Key: "Legitimacy"
    Value: "unknown"
  [1]: [Ip, "10.10.10.11"]
    Key: "Ip"
    Value: "10.10.10.11"
  [2]: [Occurences, 28]
    Key: "Occurences"
    Value: 28

where对象的目的是为每个IP给出出现的次数,并且此信息仅在我的变量$ arrayCounts中可用(在我当前的foreach管道之外)。

我希望我足够清楚。

在此先感谢您的帮助!

mklement0

看来您想$arrayCounts通过哈希表数组中Ip$resultHash哈希表条目值来交叉引用数组中的哈希表。

根据您的代码,该Where-Object命令应如下所示:

Occurrences = ($arrayCounts | Where-Object { $_.Ip -eq $result.Key }).Occurrences

也就是说,您必须枚举array的元素($arrayCounts即哈希表),并对照Ip手头的IP地址检查每个哈希表的条目。此过滤操作的结果是匹配的哈希表(我假设Ip条目在输入哈希表中是唯一的),Occurrences然后条目值包含所需的出现次数。

通常,使用.Where() 数组方法代替Where-Object cmdlet可以加快操作速度,但这也是因为它允许您在找到匹配项后停止过滤(参数'First'):

Occurrences = ($arrayCounts.Where({ $_.Ip -eq $result.Key }, 'First')).Occurrences

但是,基于期望的输出,我怀疑您对$resultHash变量的枚举是有缺陷的。假设它也是一个哈希表数组,那么您的代码将如下所示:

# Array of sample reference hashtables.
$arrayCounts = 
 @{ Occurrences = 6; Ip = "10.10.10.10" },
 @{ Occurrences = 3; Ip = "10.10.10.11" }
 
 # Array of sample result hashtables
 $resultHashes =
   @{ Legitimacy = 'legitimate'; Ip = "10.10.10.10" },
   @{ Legitimacy = 'unknown'; Ip = "10.10.10.11" }

# Loop over the hashtables in $resultHashes, construct a new hashtable
# with the cross-referenced information for each, and collect the
# result in a new hashtable array.
$finalResultHashes = 
  foreach ($resultHash in $resultHashes) {

    # Output a hashtable with that includes the matching Occurrence value
    # from the $arrayCounts array based on this result's IP.
    @{ 
      Ip = $resultHash.Ip
      Legitimacy = $resultHash.Legitimacy
      Occurrences = ($arrayCounts.Where({ $_.Ip -eq $resultHash.Ip }, 'First')).Occurrences
    }

  }

# Output the results for display.
# Note: I'm using JSON only for illustrative purposes.
$finalResultHashes | ConvertTo-Json

以上收益(JSON仅用于阐明结果结构):

[
  {
    "Legitimacy": "legitimate",
    "Ip": "10.10.10.10",
    "Occurrences": 6
  },
  {
    "Legitimacy": "unknown",
    "Ip": "10.10.10.11",
    "Occurrences": 3
  }
]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift中从字典对象分配的变量上执行操作?

来自分类Dev

如何在Python中的int对象上执行__eq __,__ gt__等?

来自分类Dev

在MongoDb中,如何在数组属性中的对象上设置值?

来自分类Dev

Powershell-如何在自定义对象中编辑现有属性

来自分类Dev

如何在Class <?>对象上执行方法

来自分类Dev

如何在指令中显示对象的属性?

来自分类Dev

如何在PowerShell中创建匿名对象?

来自分类Dev

Powershell中的where对象

来自分类Dev

我如何在我不知道name属性的对象数组中执行* ngFor?

来自分类Dev

如何在Elasticsearch中的对象列表上执行聚合(例如,avg)?

来自分类Dev

如何在Powershell中通过对象的属性值之一对数组进行排序?

来自分类Dev

如何在EJS上循环对象的属性?

来自分类Dev

如何在Powershell中的自定义对象中的每个单独对象上执行foreach循环?

来自分类Dev

Powershell-如何在自定义对象的属性中添加多个对象?

来自分类Dev

如何在Swift中从字典对象分配的变量上执行操作?

来自分类Dev

如何在Linux上的/ proc / self / maps中检测可执行文件或共享对象

来自分类Dev

如何在javascript中更新对象的属性?

来自分类Dev

在MongoDb中,如何在数组属性中的对象上设置值?

来自分类Dev

如何在不使用括号的情况下在Powershell中获取对象的属性?

来自分类Dev

如何在JavaScript对象中定位属性

来自分类Dev

如何在Storyboard中的UIView上实时执行更改而无需设置任何@IBinspectable属性?

来自分类Dev

如何在休眠中隐藏对象属性?

来自分类Dev

如何在React中渲染对象的属性?

来自分类Dev

如何在IEnumerable对象中执行foreach

来自分类Dev

如何在javascript中访问对象属性?

来自分类Dev

如何在嵌套对象中查找属性

来自分类Dev

如何在 Groovy 中的对象上设置属性

来自分类Dev

如何在 PowerShell 中更改 xml 对象的版本属性?

来自分类Dev

如何在ejs中显示对象属性

Related 相关文章

  1. 1

    如何在Swift中从字典对象分配的变量上执行操作?

  2. 2

    如何在Python中的int对象上执行__eq __,__ gt__等?

  3. 3

    在MongoDb中,如何在数组属性中的对象上设置值?

  4. 4

    Powershell-如何在自定义对象中编辑现有属性

  5. 5

    如何在Class <?>对象上执行方法

  6. 6

    如何在指令中显示对象的属性?

  7. 7

    如何在PowerShell中创建匿名对象?

  8. 8

    Powershell中的where对象

  9. 9

    我如何在我不知道name属性的对象数组中执行* ngFor?

  10. 10

    如何在Elasticsearch中的对象列表上执行聚合(例如,avg)?

  11. 11

    如何在Powershell中通过对象的属性值之一对数组进行排序?

  12. 12

    如何在EJS上循环对象的属性?

  13. 13

    如何在Powershell中的自定义对象中的每个单独对象上执行foreach循环?

  14. 14

    Powershell-如何在自定义对象的属性中添加多个对象?

  15. 15

    如何在Swift中从字典对象分配的变量上执行操作?

  16. 16

    如何在Linux上的/ proc / self / maps中检测可执行文件或共享对象

  17. 17

    如何在javascript中更新对象的属性?

  18. 18

    在MongoDb中,如何在数组属性中的对象上设置值?

  19. 19

    如何在不使用括号的情况下在Powershell中获取对象的属性?

  20. 20

    如何在JavaScript对象中定位属性

  21. 21

    如何在Storyboard中的UIView上实时执行更改而无需设置任何@IBinspectable属性?

  22. 22

    如何在休眠中隐藏对象属性?

  23. 23

    如何在React中渲染对象的属性?

  24. 24

    如何在IEnumerable对象中执行foreach

  25. 25

    如何在javascript中访问对象属性?

  26. 26

    如何在嵌套对象中查找属性

  27. 27

    如何在 Groovy 中的对象上设置属性

  28. 28

    如何在 PowerShell 中更改 xml 对象的版本属性?

  29. 29

    如何在ejs中显示对象属性

热门标签

归档