You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell数组遍历与Lambda等效功能实现问题咨询

PowerShell 实现对象数组遍历与Lambda等效功能

一、正确定义并遍历系统对象列表

你提供的语法并非PowerShell的标准格式,以下是正确的实现方式:

# 创建包含系统信息的对象数组
$systemlist = @(
    [PSCustomObject]@{
        Navn = "SystemA"
        Uri  = ""
    },
    [PSCustomObject]@{
        Navn = "SystemB"
        Uri  = ""
    }
)

# 遍历数组,输出每个系统的名称和URI
foreach ($system in $systemlist) {
    # 格式化输出具体属性
    Write-Host "名称: $($system.Navn) | URI: $($system.Uri)"
    # 若直接输出对象,PowerShell会自动以表格/列表形式展示所有属性
    # Write-Output $system
}

二、PowerShell中的Lambda表达式等效实现

PowerShell通过**脚本块(Script Block)**实现类似Lambda的功能,脚本块用{}包裹,其中$_代表当前处理的对象。以下是几种常见用法:

1. 筛选指定系统并获取其URI

# 筛选Navn为SystemA的对象,提取Uri属性
$systemAUri = $systemlist | Where-Object { $_.Navn -eq "SystemA" } | Select-Object -ExpandProperty Uri
Write-Output $systemAUri

2. 更简洁的方法语法调用

PowerShell的集合对象支持直接调用.Where()方法,无需管道:

$systemAUri = ($systemlist.Where({ $_.Navn -eq "SystemA" })).Uri

3. 批量处理对象(类似Lambda遍历)

用ForEach-Object结合脚本块,批量处理每个元素:

$systemlist | ForEach-Object {
    Write-Host "正在处理系统: $($_.Navn)"
    # 可在此添加自定义业务逻辑
}

内容的提问来源于stack exchange,提问作者codingjoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:33:16