更新以包括列出对象的空白/空属性
对不起标题,不知道如何标记这个问题。我想表达一个Dictionary对象列表,其中Key为Header / Property,Value为header的属性值。
例如,请使用以下PoSH代码
$obj1 = new-object object | select Data; $obj1.Data = @{"header1"="Value1";"header2"="Value2";}
$obj2 = new-object object | select Data; $obj2.Data = @{"header1"="ValueA";"header2"="ValueB";}
$obj3 = new-object object | select Data; $obj3.Data = @{"header1"="Value1";"header3"="ValueC";}
$tmp = @($obj1,$obj2,$obj3)
$tmp
然后如下所示:
Data
----
{header2, header1}
{header2, header1}
{header3, header1}
$tmp | select -Expand Data
获取以下有用信息
Name Value
---- -----
header2 Value2
header1 Value1
header2 ValueB
header1 ValueA
header3 ValueC
header1 Value1
无论如何,我可以转动数据并将名称转换为属性(或标题),并用值表示它们。
header1 header2 header3
---- ----- -----
Value1 ValueB
ValueA Value2
Value1 ValueC
注意:我已经能够通过编写一个函数来完成此操作,该函数将每个对象放入我的词典列表中,创建一个新对象并通过Add-Member添加属性,但这样做很昂贵当您有数千个条目和数千个词典键
时,进程缓慢答案 0 :(得分:3)
由于Powershell v2 new-object有一个property
参数,允许您输入一个哈希表,其中键是属性的名称,值是属性值。
$tmp | select -expand data | %{new-object psobject -property $_}
给出:
header2 header1
------- -------
Value2 Value1
ValueB ValueA
答案 1 :(得分:1)
这个怎么样:
$tmp | % {"header1,header2"}{$_.data.header1+","+$_.data.header2} | ConvertFrom-Csv
它给出了:
header1 header2
------- -------
Value1 Value2
ValueA ValueB