別のハッシュテーブルのすべてのプロパティに一致する配列に格納されたハッシュテーブルを返す最適な方法を見つけることを試みています配列から取得します。Powershellのハッシュテーブルの配列に対するハッシュテーブルのプロパティの比較方法
例えば、私は次の配列、およびハッシュテーブル変数があります。
$myarr = @(
@{"first" = "A";"second" = "B";"third" = "C";"fourth" = "D";"fifth" = "E"},
@{"first" = "M";"second" = "B";"third" = "C";"fourth" = "D";"fifth" = "E";"sixth"="F"},
@{"first" = "A";"second" = "B";"third" = "C";"fourth" = "D";"fifth" = "Z"})
$crit = @{"first"="A";"third"="C"}
を私は$crit
から[プロパティのすべてが一致した配列に格納されている各全体のハッシュテーブルを返す方法を必要としています。この例では、$myarr[0]
と$myarr[2]
が返されます。
これを実現するには、Properties of $crit
を1つずつループし、配列内の各ハッシュテーブルと以下のように比較します。ハッシュテーブルを比較するためのより良い方法があるかどうかを確認したいと思います。把握できません。Compare-Object
と似ています。
ForEach ($hash in $myarr) {
$match = $true
ForEach ($key in $crit.Keys) {If ($hash.$key -ne $crit.$key) {$match = $false;Break}}
If ($match) {$hash}}
このため最終的な目標は、現実世界のアプリケーションはすべて、100を持っている数百のハッシュテーブルを含むこれらの配列の数十万人を、比較されるように、メモリ使用量の最小量との比較を行うことです+プロパティ。当然のことながら、適切な方向への助けがあれば幸いですが、私の目標はこの比較を可能な限り合理化することです。
この1対多の比較プロセスはあり、または多対多の? – mjolinor
@ mjolinor one-to-many; $ myarのような多くの配列と比較して、$ critのような1つのハッシュ。 –