如何在 PowerShell 中创建匿名对象? [英] How do I create an anonymous object in 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:
在 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-Object
和Add-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;
注意:对象与哈希表
哈希表只是包含 keys
和 values
的字典,这意味着您可能无法从其他寻找 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 *
进一步阅读
- 4 种创建 PowerShell 对象的方法
- 你想知道的关于
hashtables
的一切 - 关于
PSCustomObject
你想知道的一切
- 4 Ways to Create PowerShell Objects
- Everything you wanted to know about
hashtables
- Everything you wanted to know about
PSCustomObject
Further Reading
这篇关于如何在 PowerShell 中创建匿名对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!