比较后从 TStringList 中删除多个项目
Remove multiple items from TStringList after compare
任何人都可以帮助比较两个字符串列表并从中找出区别的最佳方法是什么?
例如,如果我有像这样的 AList 和 BList
AList
- 美国广播公司
- CDE
- EFG
- 荷航
- STA
- 改性活生物
- TKJ
BList
- 美国广播公司
- CDE
- EFG
- 荷航
- STA
- 改性活生物
- TKJ
- FGJ
- FGJ
- 是
- IJE
如果我比较他们
for i := 0 to BList.count-1 do
if AList.indexof(BList[i]) < 0 then
ResultList.Add(BList[i]);
结果是:
- FGJ
- FGJ
- 是
- IJE
我只需要一次元素。我怎样才能避免多个项目?有没有比制作一个从列表中删除多个项目的过程更好的解决方案?抱歉我的英语不好,感谢您的帮助!
TStringList 有一个 属性 Duplicates
,它控制当尝试将重复项添加到 sorted 列表时应该发生什么。
来自文档:
dupIgnore Ignore attempts to add duplicate strings to the list.
dupError raise an EStringListError exception when an attempt is made
to add duplicate strings to the sorted list.
dupAccept Permit duplicate strings in the sorted list.
所以,设置
ResultList.Sorted := True;
ResultList.Duplicates := dupIgnore;
任何人都可以帮助比较两个字符串列表并从中找出区别的最佳方法是什么?
例如,如果我有像这样的 AList 和 BList
AList
- 美国广播公司
- CDE
- EFG
- 荷航
- STA
- 改性活生物
- TKJ
BList
- 美国广播公司
- CDE
- EFG
- 荷航
- STA
- 改性活生物
- TKJ
- FGJ
- FGJ
- 是
- IJE
如果我比较他们
for i := 0 to BList.count-1 do
if AList.indexof(BList[i]) < 0 then
ResultList.Add(BList[i]);
结果是:
- FGJ
- FGJ
- 是
- IJE
我只需要一次元素。我怎样才能避免多个项目?有没有比制作一个从列表中删除多个项目的过程更好的解决方案?抱歉我的英语不好,感谢您的帮助!
TStringList 有一个 属性 Duplicates
,它控制当尝试将重复项添加到 sorted 列表时应该发生什么。
来自文档:
dupIgnore Ignore attempts to add duplicate strings to the list.
dupError raise an EStringListError exception when an attempt is made to add duplicate strings to the sorted list.
dupAccept Permit duplicate strings in the sorted list.
所以,设置
ResultList.Sorted := True;
ResultList.Duplicates := dupIgnore;