ListFind

Description

Determines the index of the first list element in which a specified value occurs. Case sensitive.

Returns

Index of the first list element that contains value, with matching case. If not found, returns zero. The search is case sensitive.

Function syntax

ListFind(list, value [, delimiters, includeEmptyValues ])

See also

ListContains, ListFindNoCase; Lists in the Developing ColdFusion Applications

Parameters

Parameter

Description

includeEmptyValues

Optional. Set to yes to include empty values.

list

A list or a variable that contains one

value

A string, a number, or a variable that contains one. Item for which to search. The search is case sensitive.

delimiters

A string or a variable that contains one. Characters that separate list elements. The default value is comma.

If this parameter contains more than one character, ColdFusion processes each occurrence of each character as a delimiter.

Usage

ColdFusion ignores empty list elements; thus, the list "a,b,c,,,d" has four elements.

Example

<!--- Uses ListFind and ListFindNoCase to see if a substring exists  
    in a list --->  
<form action="./listfind.cfm" method="POST">  
    <p>Try changing the case in Leary's last name:  
    <br><input type="Text" size="25" name="myString" value="Leary">  
    <p>Pick a search type:  
        <select name="type">  
            <option value="ListFind" selected>Case-Sensitive  
            <option value="ListFindNoCase">Case-Insensitive  
        </select>  
    <input type="Submit" name="" value="Search Employee List">  
</form>  
 
<!--- wait to have a string for searching defined --->  
<cfif IsDefined("form.myString") and IsDefined("form.type")>  
 
<cfquery name="SearchEmpLastName" datasource="cfdocexamples">  
    SELECT FirstName, RTrim(LastName) AS LName, Phone, Department  
    FROM Employees  
</cfquery>  
 
<cfset myList = ValueList(SearchEmpLastName.LName)>  
<!--- Is this case-sensitive or case-insensitive searching --->  
<cfif form.type is "ListFind">  
    <cfset temp = ListFind(myList, form.myString)>  
        <cfif temp is 0>  
            <h3>An employee with that exact last name was not found</h3>  
        <cfelse>  
            <cfoutput>  
            <p>Employee #ListGetAt(ValueList(SearchEmpLastName.FirstName), temp)#  
            #ListGetAt(ValueList(SearchEmpLastName.LName), temp)#, of the 
            #ListGetAt(ValueList(SearchEmpLastName.Department), temp)# Department, 
            can be reached at #ListGetAt(ValueList(SearchEmpLastName.Phone), 
            temp)#. 
            <p>This was the first employee found under this case-sensitive last name 
            search.  
            </cfoutput>  
        </cfif>  
        <cfelse>  
            <cfset temp = ListFindNoCase(myList, form.myString)>  
            <cfif temp is 0>  
                <h3>An employee with that exact last name was not found</h3>  
            <cfelse>  
                <cfoutput>  
                <p>Employee #ListGetAt(ValueList(SearchEmpLastName.FirstName), temp)#  
                #ListGetAt(ValueList(SearchEmpLastName.LName), temp)#, of the 
                #ListGetAt(ValueList(SearchEmpLastName.Department), temp)# 
                Department, can be reached at 
                #ListGetAt(ValueList(SearchEmpLastName.Phone), temp)#.  
                <p>This was the first employee found under this case-insensitive last 
                name search.  
            </cfoutput>  
        </cfif>  
    </cfif>  
</cfif>