如何在 PowerShell 中创建匿名对象? [英] How do I create an anonymous object in PowerShell?

查看:87
本文介绍了如何在 PowerShell 中创建匿名对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个任意值的对象,有点像我如何在 C# 中做到这一点

I want to create an object of arbitrary values, sort of like how I can do this in C#

var anon = new { Name = "Ted", Age = 10 };

推荐答案

您可以按照最简单的使用顺序执行以下任一操作:

You can do any of the following, in order of easiest usage:

  1. 在 PowerShell 5+ 中使用 Vanilla Hashtable

在 PS5 中,普通哈希表适用于大多数用例

$o = @{ Name = "Ted"; Age = 10 }


  • 将哈希表转换为 PSCustomObject

    如果您没有强烈的偏好,只需在普通哈希表不起作用的地方使用它:

    $o = [pscustomobject]@{
        Name = "Ted";
        Age = 10
    }
    


  • 使用 Select-Object cmdlet


  • Using Select-Object cmdlet

    $o = Select-Object @{n='Name';e={'Ted'}},
                       @{n='Age';e={10}} `
                       -InputObject ''
    


  • 使用New-ObjectAdd-Member


  • Using New-Object and Add-Member

    $o = New-Object -TypeName psobject
    $o | Add-Member -MemberType NoteProperty -Name Name -Value 'Ted'
    $o | Add-Member -MemberType NoteProperty -Name Age -Value 10
    


  • 使用New-Object 和哈希表


  • Using New-Object and hashtables

    $properties = @{
        Name = "Ted";
        Age = 10
    }
    $o = New-Object psobject -Property $properties;
    

  • 注意:对象与哈希表

    哈希表只是包含 keysvalues 的字典,这意味着您可能无法从其他寻找 objects属性:

    Note: Objects vs. HashTables

    Hashtables are just dictionaries containing keys and values, meaning you might not get the expected results from other PS functions that look for objects and properties:

    $o = @{ Name="Ted"; Age= 10; }
    $o | Select -Property *
    

    进一步阅读

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆