比较后从 TStringList 中删除多个项目

Remove multiple items from TStringList after compare

任何人都可以帮助比较两个字符串列表并从中找出区别的最佳方法是什么?

例如,如果我有像这样的 AList 和 BList

AList

BList

如果我比较他们

     for i := 0 to BList.count-1 do
       if AList.indexof(BList[i]) < 0 then
         ResultList.Add(BList[i]);

结果是:

我只需要一次元素。我怎样才能避免多个项目?有没有比制作一个从列表中删除多个项目的过程更好的解决方案?抱歉我的英语不好,感谢您的帮助!

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;