メインコンテンツまでスキップ
バージョン: 20 R7 BETA

COLLECTION TO ARRAY

COLLECTION TO ARRAY ( collection ; array {; propertyName}{; array2 ; propertyName2 ; ... ; arrayN ; propertyNameN} )

引数説明
collectionCollection配列へとコピーしたいコレクション
arrayArrayコレクションの要素を受け取る配列。propertyName引数指定時はコレクションのpropertyNameの値を受け取る配列。
propertyNameText配列へとコピーしたいオブジェクトのプロパティ名(""を指定で全要素をコピー)

説明

COLLECTION TO ARRAY コマンドは、collection 引数のコレクションの要素あるいはpropertyName 引数で指定したプロパティの値を、array 引数で指定した一つまたはそれ以上の配列へと渡します。

このコマンドは値を格納しているcollection に対して使用することもできますし、オブジェクトを格納しているcollection に対して使用することもできます。後者の場合にはpropertyName 引数は必須になります。

  • propertyName 引数を省略した場合、コマンドはcollection 内の全ての要素をarray 引数の配列へとコピーします。コマンド実行後、array のサイズはコレクションのlength と同一になります。
  • 一つあるいはそれ以上のpropertyName 引数を渡す場合、collection はオブジェクトのコレクションでなければいけません(他の要素は無視されます)。この場合、propertyName 引数には、コレクションの各オブジェクトから対応するにarray へとコピーしたい値のプロパティの名前を渡します。propertyName / array のペアはいくつでも渡すことができ、それぞれ異なる配列の型を指定することもできます。コマンド実行後、各array のサイズはコレクションのlength と同一になります。

どちらの場合においても、4D はコレクションの要素あるいは値をarray 引数で指定した配列の型に合わせて変換します(必要であれば)。変換に際してのルールはコレクションと4D配列間での型の変換 のページに詳細な説明があります。

例題 1

文字列のコレクションをテキスト配列へとコピーしたい場合を考えます:

 var $fruits : Collection
 $fruits:=New collection("Orange";"Banana";"Apple";"Grape")
 ARRAY TEXT($artFruits;0)
 COLLECTION TO ARRAY($fruits;$artFruits)
  //$artFruits{1}="Orange"
  //$artFruits{2}="Banana"
  //...

例題 2

オブジェクトのコレクションの異なるプロパティ値を、異なる配列へとコピーしたい場合を考えます:

 var $col : Collection
 $col:=New collection
 ARRAY TEXT($city;0)
 ARRAY LONGINT($zipCode;0)
 $col.push(New object("name";"Cleveland";"zc";35049))
 $col.push(New object("name";"Blountsville";"zc";35031))
 $col.push(New object("name";"Adger";"zc";35006))
 $col.push(New object("name";"Clanton";"zc";35046))
 $col.push(New object("name";"Shelby";"zc";35143))
 
 COLLECTION TO ARRAY($col;$city;"name";$zipCode;"zc")
  //$city{1}="Cleveland", $zipCode{1}=35049
  //$city{2}="Blountsville", $zipCode{2}=35031
  //...

参照

ARRAY TO COLLECTION
コレクションと4D配列間での型の変換