Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

$LISTLENGTH

指定したリストにある要素の数を返します。

Synopsis

$LISTLENGTH(list)
$LL(list)

パラメータ

list リストに評価する任意の式リストは、$LISTBUILD または $LISTFROMSTRING を使用して作成されるか、$LIST を使用して別のリストから抽出されます。

概要

$LISTLENGTH は、list にある要素の数を返します。$LISTLENGTH は、データが含まれているかどうかにかかわらず、それぞれ指定されたリスト位置をリスト要素としてカウントします。

$LISTVALID 関数を使用すると、list が有効なリストかどうかを判定できます。list が有効なリストでない場合、システムは <LIST> エラーを生成します。

$LISTBUILD によって作成された “空” のリストは、(リスト要素にはデータは含まれませんが) エンコードされたリスト要素を定義します。$LISTLENGTH は、(データを含む要素ではなく) リスト要素をカウントするため、“空” のリストの $LISTLENGTH 数は 1 になります。

NULL リスト (要素を含まないリスト) を表すには NULL 文字列 ("") を使用します。リスト要素を含まないため、$LISTLENGTH 数は 0 になります。

以下の例は、list に 3 つの要素が存在するため、3 を返します。

   WRITE $LISTLENGTH($LISTBUILD("Red","Blue","Green"))

以下の例はリストの 2 つ目の要素にデータが含まれていませんが、これでも 3 を返します。

   WRITE $LISTLENGTH($LISTBUILD("Red",,"Green"))

以下の例はすべて 1 を返します。$LISTLENGTH は、空のリスト要素とデータを含むリスト要素を区別しません。

  WRITE $LISTLENGTH($LB()),!
  WRITE $LISTLENGTH($LB(NULL)),!
  WRITE $LISTLENGTH($LB("")),!
  WRITE $LISTLENGTH($LB($CHAR(0))),!
  WRITE $LISTLENGTH($LB("John Smith"))

以下の例は 0 を返します。$LISTVALID は NULL 文字列を有効なリストと見なしますが、これにリスト要素は含まれません。

   WRITE $LISTLENGTH("")

2 つのプレースホルダ・コンマは空のリスト要素が 3 つあることを表しているため、以下の例は 3 を返します。

   WRITE $LISTLENGTH($LB(,,))

$LISTLENGTH と連結

2 つのリストを連結すると、常に $LISTLENGTH はリストの長さの合計と等しくなります。これは、空のリストを連結したり、NULL 文字列をリストに連結する場合でも同様です。

以下の例はすべてリスト長 3 を返します。

  WRITE $LISTLENGTH($LB()_$LB("a","b")),!
  WRITE $LISTLENGTH($LB("a")_$LB(NULL)_$LB("c")),!
  WRITE $LISTLENGTH($LB("")_$LB()_$LB(NULL)),!
  WRITE $LISTLENGTH(""_$LB("a","b","c")),!
  WRITE $LISTLENGTH($LB("a","b")_""_$LB("c"))

$LISTLENGTH と入れ子のリスト

以下の例は、$LISTLENGTH が入れ子になっているリストの個々の要素を認識せず、これを単一のリスト要素として扱うため、3 を返します。

   WRITE $LISTLENGTH($LB("Apple","Pear",$LB("Walnut","Pecan")))

以下の例は、$LISTLENGTH が最も外側の入れ子になっているリストのみをカウントするため、すべて 1 を返します。

   WRITE $LISTLENGTH($LB($LB($LB()))),!
   WRITE $LISTLENGTH($LB($LB($LB("Fred")))),!
   WRITE $LISTLENGTH($LB($LB("Barney"_$LB("Fred")))),!
   WRITE $LISTLENGTH($LB("Fred"_$LB("Barney"_$LB("Wilma"))))

関連項目

FeedbackOpens in a new tab