La differenza tra listContains (listContainsNoCase) e listFind (listFindNoCase) porta spesso a fare degli errori nei controlli, per poca attenzione alla loro differenza.
Puntualizziamo.
listFind
Permette di rintracciare la posizione del primo elemento di una lista che sia uguale all’elemento da noi ricerchiamo. Se per esempio cerchiamo Merlinox in una lista di nomi ltNomi, con delimitatore ";" facciamo:
<cfset i = listFind(ltNomi,"merlinox",";")>
listContains
A differenza della funzione precedente, restituisce sempre una posizione, ma non del primo elemento della lista uguale, ma del primo elemento della lista che contiene l’elemento da noi cercato.
Se la lista di nomi è "gino;pino;merlinox;ino;ugo" e noi cerchiamo Ino, otterremo indice 1, perchè "ino" come sottostringa è presente già nel primo elemento.
<cfset i = listContains(ltNomi,"Ino",";")>
Entrambe le funzioni hanno anche l’alternativa NoCase (listFindNoCase,listContainsNoCase) per la ricerca non sensibilie alle maiuscole/minuscole, non Case-Sensitive.
Ricordo un post di molto tempo fa in cui propongo la funzione arrayFind, non presente in CF nativo.
Se trovi questo articolo su un blog diverso da “blog.merlinox.com” si tratta probabilmente di una copia non autorizzata. L’indirizzo originale di questo articolo è: CF – listFind vs listContains scritto da Merlinox.
