cflib.org has a function called ListDistinct. Get it. Then build your list without worrying about duplicates and use this function when you are done.
Thanks Dan. I didn't find it on the site you mentioned, but a Google search did take me to:
Not sure if it's up to date, it was dated 2002. I took a look at the CFM that came with it,heres the code inside it, pretty much how I would have written it manually in CF, I think that it would possibly just use too many resources to keep looking over the list. Here's the code
<CFPARAM name="Attributes.list" default="">
<CFPARAM name="Attributes.return_vname" default="distinct_list">
<CFPARAM name="Attributes.sort" default="No">
<CFLOOP list="#Attributes.list#" index="i">
<CFIF ListFindNoCase(temp_list,i) EQ 0>
<CFSET temp_list = ListAppend(temp_list,i)>
<CFIF Attributes.sort EQ "Yes">
<CFSET "Caller.#Attributes.return_vname#" = ListSort(temp_list, "Text")>
<CFSET "Caller.#Attributes.return_vname#" = temp_list>
If you want to use it as it is, you'll also need teh ListSort function. It's in the same library.
Ah, I didn't notice that. So regardless of how I use it I presume I'll need that?
the instructions just had it set up as a custom tag
ACS LLC, you could translate the custom tag into a function, something like this
<cffunction name="removeDuplicates" access="public" output="no" returntype="string" hint="This function will take a list and remove all duplicate values from it.">
list (required): input list
sort (optional): perform a text-sort on the list? Yes or No. Default is No.
<cfargument name="list" required="true" >
<cfargument name="sort" required="false" default="no">
<cfset var returnList = "">
<cfset var temp_list = "">
<cfloop list="#arguments.list#" index="i">
<cfif listfindnocase(temp_list,i) eq 0>
<cfset temp_list = listappend(temp_list,i)>
<cfif arguments.sort eq "yes">
<cfset returnList = listsort(temp_list, "text")>
<cfset returnList = temp_list>