Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see the InterSystems IRIS Migration Guide and Migrating to InterSystems IRIS, both available on the WRC Distributions page (login required).


Finds an element in a list.




list An expression that evaluates to a valid list. A Caché list must be created using ListBuild or ListFromString, or extracted from another list using List.
value An expression which evaluates to the value of the element to find.
startafter Optional — An expression interpreted as a list position. The search starts with the element after this position.


The ListFind function searches the specified list for the first instance of the requested value. The search begins with the element after the position indicated by the startafter argument. If you omit the startafter argument, ListFind assumes a startafter value of 0 and starts the search with the first element. If the value is found, ListFind returns the position of the first matching element. If the value is not found, ListFind returns zero (0). The ListFind function will also return a 0 if the value of the startafter argument refers to a nonexistent list member.

The ListFind function only matches complete elements. Thus, the following example returns 0 because no element of the list is equal to the string “B”, though all of the elements contain “B”:

mylist = ListBuild("ABC","BCD","BBB")
Println ListFind(mylist,"B")
Copy code to clipboard


The following example demonstrates how to use the ListFind function:

myList = ListBuild("Red", "Blue", "Green", "Yellow","Green")
Println ListFind(myList,"Green")   ' prints 3
Println ListFind(myList,"Green",3) ' prints 5
Println ListFind(myList,"Red")     ' prints 1
Println ListFind(myList,"Red",1)   ' prints 0 (not found)
Copy code to clipboard

See Also