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.

History

ColdFusion (2018 release): Changed Parameter name includeEmptyValues to includeEmptyFields.

Category

List functions

Function syntax

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

See also

ListContainsListFindNoCaseLists in Data types- Developing guide in the Developing ColdFusion Applications

Parameters

Parameter

Description

includeEmptyFields

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.

History

ColdFusion (2018 release): Changed parameter name includeEmptyValues to includeEmptyFields.

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:</p>
<br><input type="Text" size="25" name="myString" value="Leary">
<p>Pick a search type:</p>
<select name="type">
<option value="ListFind" selected>Case-Sensitive</option>
<option value="ListFindNoCase">Case-Insensitive</option>
</select>
<input type="Submit" value="Search Employee List">
</form>
<!--- wait to have a string for searching defined --->
<cfif structKeyExists(form,"myString") AND structKeyExists(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 EQ "ListFind">
<cfset temp = ListFind(myList, form.myString)>
<cfif temp EQ 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>
<p>This was the first employee found under this case-sensitive last name
search.</p>
</cfoutput>
</cfif>
<cfelse>
<cfset temp = ListFindNoCase(myList, form.myString)>
<cfif temp EQ 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>
<p>This was the first employee found under this case-insensitive last
name search.</p>
</cfoutput>
</cfif>
</cfif>
</cfif>
<cfscript>
       myList="Tokyo,Bangkok,bangkok,bangKok,Jakarta,Manila,Bangalore,Shanghai";
       myFind=ListFind(myList,"bangkok");
       WriteOutput(myFind); // Returns 3
</cfscript>

Output

3

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy