Private/ConvertFrom-HashtableToAttrList.ps1
function ConvertFrom-HashtableToAttrList { <# .SYNOPSIS Convert a hashtable into an attr list, which is really an array of objects. .DESCRIPTION Converts a hashtable into an array of objects, each with a name and value. .PARAMETER Values The hashtable to convert. .PARAMETER NameProp The string used for the name or key of the k/v pair. Defaults to 'name'. .PARAMETER ValueProp The string used for the value of the k/v pair. Defaults to 'value'. .RETURNVALUE An array of hashtable objects with name,value keys. .EXAMPLE ConvertFrom-HashTableToAttrList -Values @{ creator = 'provisioning-script.ps1' created = [System.DateTime]::Now.ToString("yyyy MM dd") } #> PARAM( [Hashtable] $Values, [String] $NameProp = 'name', [String] $ValueProp = 'value' ) PROCESS { $Result = @() foreach( $kv in $Values.GetEnumerator()) { if($kv.Name) { $hash = @{} $hash[$NameProp] = $kv.Name $hash[$ValueProp] = $kv.Value $Result += $hash } } # Return an ARRAY of objects like { name = something; value = somethingelse } $Result } } |