4

同様のデータ構造に結合することは論理的ではないことはわかっていましたが、Dictionary オブジェクト内に配列要素を含めることができるかどうか知りたいと思っていました。何かのようなもの:

Set d = CreateObject("Scripting.Dictionary")

d.Add "Name", "John"
d.Add "Age", 31
d.Add "Company", Array("microsoft", "apple")
4

1 に答える 1

8

あなたはWScript.Echo自分で質問を解決するのにあと 1 つです。

>> Set d = CreateObject("Scripting.Dictionary")
>> d.Add "Company", Array("microsoft", "apple")
>> WScript.Echo Join(d("Company"))
>>
microsoft apple

この質問を参照してください

更新 (@Ansgar に感謝):

.Item()(およびFor Each)によって配信される要素はコピーです。配列割り当てのコピーも (他の言語のように参照を取りません)。したがって、辞書に格納されている配列要素を変更することは、新しい配列を割り当てることを意味します。

>> Set d = CreateObject("Scripting.Dictionary")
>> d.Add "Company", Array("microsoft", "apple")
>> WScript.Echo Join(d("Company"))
>> d("Company") = Array(d("Company")(1), "samsung")
>> WScript.Echo Join(d("Company"))
>>
microsoft apple
apple samsung

(別の) 辞書、System.Collections.Arraylist、またはカスタム オブジェクトを使用する方が便利な場合があります (すべてのオブジェクトは参照であるため、代入によって元の要素にアクセスできます)。

于 2013-02-26T19:20:37.720 に答える