【问题标题】:How do I iterate over PSObject in C#?如何在 C# 中迭代​​ PSObject?
【发布时间】:2016-01-07 23:04:50
【问题描述】:

在我的 C# 代码中,我正在调用一个 PowerShell 文件。此 PowerShell 文件调用如下 API:

$tickets = Invoke-RestMethod -uri 'x'

return $tickets.value

从我的 C# 代码中,我将返回的结果存储在一个变量中,如下所示:

var tickets = pipeline.Invoke();

foreach (var ticket in tickets)
{
    System.Diagnostics.Debug.WriteLine(ticket.Status); //ERROR
}

我在这里收到一条错误消息,提示 foreach 无法对 System.Management.Automation.PSObject 类型的变量进行操作。

打印 'tickets' 会返回:

@{Id=581; CID=3;状态=活动}

@{Id=545; CID=6;状态=活动}

我需要能够遍历票证中的每张票。

【问题讨论】:

  • 你只需要 C# 中的 1 foreach - 你不需要再做刚才在 PowerShell 中所做的事情
  • @mathias:请检查 OP 中的新编辑
  • var 票证,票证是什么类型,可能需要转换为可枚举类型
  • @saj 它的 PSObject 类型。如何使其可枚举?

标签: c# powershell runspace


【解决方案1】:

这就是你的做法:

System.Diagnostics.Debug.WriteLine(ticket.Properties["Status"].Value);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2019-02-07
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2012-06-19
    相关资源
    最近更新 更多