準備
事前に「Microsoft.Activities.Extensions」をインストールしておきましょう。
辞書型変数の作成
「Add To Dictionary」アクティビティを、デザイナーパネルに追加して下さい。
すると、「Select Types」ダイアログが出現するので、keyとvalueの型を指定して下さい。
「Dictionary」内で、変数を作成します。「key」と「value」内には、辞書化させたい値を記入します。
作成した辞書型変数に「New Dictionary (of 【keyの型】, 【valueの型】)」と代入します。これで作成完了です。
「辞書型変数(key)」と書けば、keyに紐づけられたvalueを取得できます。
また、Assignアクティビティを使ってvalueを上書きする事もできます。
なお、実際の業務では、ForEachRowを使って一気に作成する事が多いです。
「key:value=1:2以上」の時
ここまでで紹介した辞書型変数は「key:value=1:1」の時に活躍します。
では下図のような「key:value=1:2以上」の場合はどうすればいいでしょうか?
方法は2つあります。
①「Add To Dictionary」を複数使用する。
②valueの型に「tuple」を使用する。
①「Add To Dictionary」を複数使用する。
単純に、valueの数だけ辞書型変数を作成して紐づける方法です。
【利点】Keyとvalueの関連が見やすい。
【欠点】valueの数だけAddToDictionaryを使うため、ワークフローが長くなる。
②valueの型に「tuple」を使用する。
valueの型を「tuple」にして、1つのkeyに複数のvalueを紐づける方法です。
作成した変数に「New Dictionary (of 【key型】, Tuple(of 【value1型】, 【value2型】))」を代入し、
さらに、Add To Dictionaryのvalue欄には、「Tuple.Create (of 【value1型】, 【value2型】)(【value1の値】, 【value2の値】)」を代入します。これで完成です。
tuple内の値は、左からItem1,Item2…と定義されているため、値を取り出す時は「辞書型変数(key).Item【番号】」と記載すればOKです。
【利点】1個の辞書型変数に対して、valueの数に関係無くAddToDictionaryが1個で済む。
【欠点】可読性に難あり。