根据属性值获取通用/列表中对象的索引

高登

我可以Generic.List用我的类的实例填充,每个实例在ID属性中都具有唯一的值,如下所示。

$packages = [System.Collections.Generic.List[object]]::New()

class Package {
    # Properties
    [String]$ID

    # Constructor
    Package ([String]$id) {
        $this.ID = $id
    }
}

foreach ($i in 65..90) {
    $packages.Add([Package]::New("$([char]$i)"))
}

现在,我要沿的行获取特定项目的索引$packages.IndexOf('C')但是在C#中执行此操作似乎需要使用lambda,而PowerShell似乎不支持该功能。我宁愿不必初始化我自己的索引变量,也不需要遍历列表中的所有项目以检查其ID并逐步增加索引。但是,也许这是仅在使用本机PS cmdlet的PowerShell和仅使用C#的灰色区域,您在两个极端中都错失了糖,必须自己做?

Mathias R. Jessen

您可以使用a[scriptblock]作为谓词:

$packages.FindIndex({$args[0].ID -eq 'C'})
# or
$packages.FindIndex({param($item) $item.ID -eq 'C'})

假设您的包裹ID是唯一的,请考虑使用字典而不是列表:

$packages = [System.Collections.Generic.Dictionary[string,Package]]::new([StringComparer]::InvariantCultureIgnoreCase)

class Package {
    # Properties
    [String]$ID

    # Constructor
    Package ([String]$id) {
        $this.ID = $id
    }
}

foreach ($i in 65..90) {
    $ID = "$([char]$i)"
    $packages.Add($ID, [Package]::new($ID))
}

现在,您无需担心商品的位置,现在,您只需按ID删除商品即可:

$wasRemoved = $packages.Remove("C")

Remove()$true当成功删除条目$false时,找不到键时返回

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据对象状态的相等性获取列表中对象的索引

来自分类Dev

在Python中按属性获取对象列表中的索引

来自分类Dev

根据值获取列表中项目的索引

来自分类Dev

根据相同的属性将值合并到对象列表中

来自分类Dev

根据属性值检索列表中的不同对象

来自分类Dev

如何通过列表中的属性值获取/查找对象

来自分类Dev

根据索引列表从数组中获取元素

来自分类Dev

根据对象中的一个属性从列表中获取最新的对象

来自分类Dev

根据特定的属性值以通用方法获取IEnumerable <T>

来自分类Dev

根据属性从列表中删除重复的对象

来自分类Dev

通过对象属性获取列表中的对象

来自分类Dev

使用Linq获取列表中对象的索引

来自分类Dev

根据javascript中的两个属性获取数组中重复对象的列表

来自分类Dev

根据C#中的属性从对象列表中获取合并数据

来自分类Dev

根据属性值限制数组中的对象

来自分类Dev

搜索列表并根据匹配项的索引值获取项目

来自分类常见问题

在布尔列表中获取True值的索引

来自分类Dev

在对象列表中获取具有最大属性值的对象

来自分类Dev

如何获取具有匹配特定条件的属性值的数组中对象的索引?

来自分类Dev

Linq代码从列表中的对象获取数组中对象的索引

来自分类Dev

如何在列表中设置通用对象的属性?

来自分类Dev

我如何访问给定索引的对象列表中的对象属性?

来自分类Dev

如何访问给定索引的对象列表中的对象属性?

来自分类Dev

如何获取存储在列表中的对象的属性

来自分类Dev

使用 linq 获取通用列表中的特定属性

来自分类Dev

根据ID列表更新对象列表中的属性

来自分类Dev

在Java中的Enum和String列表中获取通用值

来自分类Dev

根据属性值返回过滤的Java对象列表

来自分类Dev

根据属性值返回过滤的Java对象列表

Related 相关文章

  1. 1

    根据对象状态的相等性获取列表中对象的索引

  2. 2

    在Python中按属性获取对象列表中的索引

  3. 3

    根据值获取列表中项目的索引

  4. 4

    根据相同的属性将值合并到对象列表中

  5. 5

    根据属性值检索列表中的不同对象

  6. 6

    如何通过列表中的属性值获取/查找对象

  7. 7

    根据索引列表从数组中获取元素

  8. 8

    根据对象中的一个属性从列表中获取最新的对象

  9. 9

    根据特定的属性值以通用方法获取IEnumerable <T>

  10. 10

    根据属性从列表中删除重复的对象

  11. 11

    通过对象属性获取列表中的对象

  12. 12

    使用Linq获取列表中对象的索引

  13. 13

    根据javascript中的两个属性获取数组中重复对象的列表

  14. 14

    根据C#中的属性从对象列表中获取合并数据

  15. 15

    根据属性值限制数组中的对象

  16. 16

    搜索列表并根据匹配项的索引值获取项目

  17. 17

    在布尔列表中获取True值的索引

  18. 18

    在对象列表中获取具有最大属性值的对象

  19. 19

    如何获取具有匹配特定条件的属性值的数组中对象的索引?

  20. 20

    Linq代码从列表中的对象获取数组中对象的索引

  21. 21

    如何在列表中设置通用对象的属性?

  22. 22

    我如何访问给定索引的对象列表中的对象属性?

  23. 23

    如何访问给定索引的对象列表中的对象属性?

  24. 24

    如何获取存储在列表中的对象的属性

  25. 25

    使用 linq 获取通用列表中的特定属性

  26. 26

    根据ID列表更新对象列表中的属性

  27. 27

    在Java中的Enum和String列表中获取通用值

  28. 28

    根据属性值返回过滤的Java对象列表

  29. 29

    根据属性值返回过滤的Java对象列表

热门标签

归档