从列表中删除重复项

Cha*_*har 6 coldfusion coldfusion-10

我有一个字符串列表,我需要删除重复项.我尝试了很多东西,例如:

不幸的是,它们都没有奏效.我真的不确定发生了什么.所以任何帮助将不胜感激.

我目前正在使用免费的开发人员版本的ColdFusion 10以防万一.

样品清单:

腔隙性脂肪性肝炎,同型半胱氨酸,HTN,烟草,未定,lacunar_DM,同型半胱氨酸,烟草

这是通过附加一个静态列表创建的,该列表包含从数据库中提取的动态列表:

<cfsavecontent variable= "lacunar_list">
lacunar_DM,
Homocysteine,
HTN,
Tobacco,
undetermined
</cfsavecontent>
<cfset combination = ListAppend(lacunar_list, lacunar)>

<cfoutput>
List before removing dups: #combination#<br/>
List after removing dups: #listremoveduplicates(combination, ",", true)#<br/>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

结果如下:

删除重复之前的列表:

腔隙性脂肪性肝炎,同型半胱氨酸,HTN,烟草,未定,lacunar_DM,同型半胱氨酸,烟草

删除重复后列出:

腔隙性脂肪性肝炎,同型半胱氨酸,HTN,烟草,未定,lacunar_DM,同型半胱氨酸,烟草

Tra*_*vis 8

我认为您的问题是您的列表包含额外的空白区域."同型半胱氨酸"和"同型半胱氨酸"的值不同.同样,"烟草"和"烟草"的价值观也不一样.

lacunar_DM, Homocysteine, HTN, Tobacco, undetermined ,lacunar_DM,Homocysteine,Tobacco
-----------^-------------^----^--------^------------^------------X------------X
Run Code Online (Sandbox Code Playgroud)


Bus*_*hes 5

如前所述,您的列表项包含额外的空白区域.查看列表,所有项目都_用作空格,因此最简单的解决方案是首先删除空格,然后删除重复项.

listRemoveDuplicates( Replace( YourList, " ", "", "ALL" ) )
Run Code Online (Sandbox Code Playgroud)

如果你确实有一些有效的空格,那么我建议Trim()你在手动编译列表时使用字段.

YourList = ListAppend( YourList, Trim( ListItem ) )
Run Code Online (Sandbox Code Playgroud)


Rus*_*uss 1

问题是您创建的列表cfsavecontent中包含换行符,因为该列表中的每个项目都位于cfsavecontent. 由于您要加入的另一个列表没有相同的空格,因此您将不会获得正确的结果。

一般来说,最好从 Coldfusion 的列表中删除不必要的空格。

尝试这个而不是使用cfsavecontent

<cfset lacunar_list = "lacunar_DM,Homocysteine,HTN,Tobacco,undetermined" >
<cfset combination = ListAppend(lacunar_list, lacunar)>
Run Code Online (Sandbox Code Playgroud)