コードブロックがある場合とない場合のグループオブジェクトの相違

ルーク・マーリン

以下のコードは2つの「同一の」ハッシュテーブルを生成しますが、コードブロックを使用してグループ化されたものでは、キーからアイテムを取得できません。

$HashTableWithoutBlock = 
    Get-WmiObject Win32_Service | Group-Object State -AsHashTable
$HashTableWithBlock = 
    Get-WmiObject Win32_Service | Group-Object {$_.State} -AsHashTable

Write-Host "Search result for HashTable without using code block : " -NoNewline
if($HashTableWithoutBlock["Stopped"] -eq $null)
{
    Write-Host "Failed"
}
else
{
    Write-Host "Success"
}

Write-Host "Search result for HashTable with code block : " -NoNewline
if($HashTableWithBlock["Stopped"] -eq $null)
{
    Write-Host "Failed"
}
else
{
    Write-Host "Success"
} 

出力:

Search result for HashTable without using code block : Success
Search result for HashTable with code block : Failed

2つのハッシュテーブルの違いは何ですか?

コードブロックでグループ化された2番目のアイテムを取得するにはどうすればよいですか?

編集:回避策以上に、テーブルルックアップ必要なアイテムを取得できるかどうかを知りたいのですが、可能であれば、どのようにしたらよいですか?

user4003407

2つHashtableの違い$HashTableWithBlockは、キーがでラップされていることPSObjectです。問題は、PowerShellは通常PSObject、メソッド呼び出しに渡す前にアンラップするため、正しいキーを持っていても、それをインデクサーに渡すことはできないということです。これを回避するために、適切なオブジェクトでインデクサーを呼び出すヘルパーC#メソッドを作成できます。別の方法は、リフレクションを使用することです。

Add-Type -TypeDefinition @'
    public static class Helper {
        public static object IndexHashtableByPSObject(System.Collections.IDictionary table,object[] key) {
            return table[key[0]];
        }
    }
'@
$HashTableWithBlock = Get-WmiObject Win32_Service | Group-Object {$_.State} -AsHashTable
$Key=$HashTableWithBlock.Keys-eq'Stopped'
#Helper method
[Helper]::IndexHashtableByPSObject($HashTableWithBlock,$Key)
#Reflection
[Collections.IDictionary].InvokeMember('','GetProperty',$null,$HashTableWithBlock,$Key)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

新しいキーワードがある場合とない場合のC ++オブジェクトの作成

分類Dev

マングーススキーマ、プロパティを持つ場合と持たない場合があるオブジェクトの保存

分類Dev

外部フィールドとローカルフィールドがオブジェクトの配列である場合のMongoDBルックアップ

分類Dev

Java ..パブリッククラスがあり、グループプロジェクトの一部としてMainメソッドがない場合..コンパイルするにはどうすればよいですか?

分類Dev

プロパティが異なるオブジェクトタイプである場合のコードの基本クラスへの統合

分類Dev

ドラッグ可能なコンテナにオーバーフローがある場合にのみ、ドロップ可能なオブジェクトをドラッグするときにjqueryuiドラッグアンドドロップ要素が切り取られます

分類Dev

ノートブックの違いがある場合とない場合のIPython

分類Dev

プロパティが別のオブジェクトにある場合にグループオブジェクトに_.groupByjsを使用する方法-TypeScript

分類Dev

親オブジェクトに大きなデータが含まれている場合のマルチプロセッシングが遅い

分類Dev

ローカルフィールドが別のコレクションのオブジェクトの配列のキーである場合に集計

分類Dev

Angularプロジェクトのexportキーワードがある場合とない場合のクラスとインターフェース

分類Dev

明示的な変数がある場合とない場合のTSのオブジェクト分解

分類Dev

Python OpenCVの顔検出コードで、「タプル」オブジェクトに属性「形状」がない場合があります。

分類Dev

スレッドローカルマップにthreadlocalオブジェクトへの弱参照が含まれている場合、なぜガベージコレクションされないのですか?

分類Dev

コールバックがオブジェクトメソッドの場合のJavascript「this」コンテキスト

分類Dev

マングースはオブジェクトを作成する必要がありますが、別のオブジェクトにすでにこのプロパティがある場合は、プロパティをスキップしてください

分類Dev

Typescript:プロパティ値がネストされたオブジェクトからのものである場合、コードがコンパイルされないのはなぜですか?

分類Dev

iostreamオブジェクトがコピーできない場合、次のコードが合法であるのはなぜですか?

分類Dev

「プリミティブ」オブジェクトと「非プリミティブ」オブジェクトのコピーの違いが深い場合と浅い場合の理由

分類Dev

依存オブジェクトがある場合にpostgresでユーザーをドロップする方法

分類Dev

リモートデバッグがアクティブでない場合、ユーザーがnullであり、アクティブな場合、オブジェクトであるのはなぜですか?

分類Dev

ファイルがコンストラクターに存在しない場合は例外をスローし、main()でオブジェクトを作成するときにそれを試行/キャッチします(問題がない場合)-オブジェクトの使用を開始します

分類Dev

バックボーンjs-json応答がドメインブックでラップされている場合、コレクションオブジェクトのフィールドをレンダリングできません

分類Dev

選択したグリッドがある場合とない場合のコンテキストメニューストリップコントロール

分類Dev

外部フィールドがオブジェクトの配列である場合のMongoDBルックアップ

分類Dev

オブジェクトに直接質問する場合とすべてのテーブルエントリを反復する場合の属性値の違い

分類Dev

ブロックがある場合とない場合のopen-uriとの違い

分類Dev

2 つのオブジェクトが同一である場合に C# コードが検出できないのはなぜですか?

分類Dev

オブジェクトにWindowsと互換性のないファイル名がある場合に、s3バケットからすべてのファイルをダウンロードする方法

Related 関連記事

  1. 1

    新しいキーワードがある場合とない場合のC ++オブジェクトの作成

  2. 2

    マングーススキーマ、プロパティを持つ場合と持たない場合があるオブジェクトの保存

  3. 3

    外部フィールドとローカルフィールドがオブジェクトの配列である場合のMongoDBルックアップ

  4. 4

    Java ..パブリッククラスがあり、グループプロジェクトの一部としてMainメソッドがない場合..コンパイルするにはどうすればよいですか?

  5. 5

    プロパティが異なるオブジェクトタイプである場合のコードの基本クラスへの統合

  6. 6

    ドラッグ可能なコンテナにオーバーフローがある場合にのみ、ドロップ可能なオブジェクトをドラッグするときにjqueryuiドラッグアンドドロップ要素が切り取られます

  7. 7

    ノートブックの違いがある場合とない場合のIPython

  8. 8

    プロパティが別のオブジェクトにある場合にグループオブジェクトに_.groupByjsを使用する方法-TypeScript

  9. 9

    親オブジェクトに大きなデータが含まれている場合のマルチプロセッシングが遅い

  10. 10

    ローカルフィールドが別のコレクションのオブジェクトの配列のキーである場合に集計

  11. 11

    Angularプロジェクトのexportキーワードがある場合とない場合のクラスとインターフェース

  12. 12

    明示的な変数がある場合とない場合のTSのオブジェクト分解

  13. 13

    Python OpenCVの顔検出コードで、「タプル」オブジェクトに属性「形状」がない場合があります。

  14. 14

    スレッドローカルマップにthreadlocalオブジェクトへの弱参照が含まれている場合、なぜガベージコレクションされないのですか?

  15. 15

    コールバックがオブジェクトメソッドの場合のJavascript「this」コンテキスト

  16. 16

    マングースはオブジェクトを作成する必要がありますが、別のオブジェクトにすでにこのプロパティがある場合は、プロパティをスキップしてください

  17. 17

    Typescript:プロパティ値がネストされたオブジェクトからのものである場合、コードがコンパイルされないのはなぜですか?

  18. 18

    iostreamオブジェクトがコピーできない場合、次のコードが合法であるのはなぜですか?

  19. 19

    「プリミティブ」オブジェクトと「非プリミティブ」オブジェクトのコピーの違いが深い場合と浅い場合の理由

  20. 20

    依存オブジェクトがある場合にpostgresでユーザーをドロップする方法

  21. 21

    リモートデバッグがアクティブでない場合、ユーザーがnullであり、アクティブな場合、オブジェクトであるのはなぜですか?

  22. 22

    ファイルがコンストラクターに存在しない場合は例外をスローし、main()でオブジェクトを作成するときにそれを試行/キャッチします(問題がない場合)-オブジェクトの使用を開始します

  23. 23

    バックボーンjs-json応答がドメインブックでラップされている場合、コレクションオブジェクトのフィールドをレンダリングできません

  24. 24

    選択したグリッドがある場合とない場合のコンテキストメニューストリップコントロール

  25. 25

    外部フィールドがオブジェクトの配列である場合のMongoDBルックアップ

  26. 26

    オブジェクトに直接質問する場合とすべてのテーブルエントリを反復する場合の属性値の違い

  27. 27

    ブロックがある場合とない場合のopen-uriとの違い

  28. 28

    2 つのオブジェクトが同一である場合に C# コードが検出できないのはなぜですか?

  29. 29

    オブジェクトにWindowsと互換性のないファイル名がある場合に、s3バケットからすべてのファイルをダウンロードする方法

ホットタグ

アーカイブ