1. ホーム
  2. powershell

[解決済み] 配列、ハッシュテーブル、ディクショナリーを作成しますか?

2022-03-04 18:17:36

質問

配列、ハッシュテーブル、ディクショナリーを作成する正しい方法を教えてください。

$array = [System.Collections.ArrayList]@()

$array.GetType() はArrayListを返す、OK。

$hashtable = [System.Collections.Hashtable]

$hashtable.GetType() はRuntimeTypeを返します、Not OKです。

$dictionary = ? 

この.NETの方法を使って辞書を作るにはどうしたらいいでしょうか?

dictionaryとhashtableの違いは何ですか?どのような場合にどちらを使うべきか迷っています。

どのように解決するのですか?

その 適切な の方法(つまりPowerShellの方法)です。

配列にします。

> $a = @()
> $a.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

ハッシュテーブル / 辞書。

> $h = @{}
> $h.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Hashtable                                System.Object

上記は、ほとんどの辞書的なシナリオで十分ですが、もし、明示的に Systems.Collections.Generic のように初期化することができます。

> $d = New-Object 'system.collections.generic.dictionary[string,string]'
> $d.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Dictionary`2                             System.Object

> $d["foo"] = "bar"
> $d | Format-Table -auto

Key   Value
---   -----
foo   bar