Удаление дублей кажется простым, пока две строки не отличаются регистром или пробелами по краям. Надёжный инструмент должен объяснить, какие значения сравниваются, какое вхождение остаётся и меняется ли порядок. ListClean сначала обрезает края, если это выбрано, затем удаляет повторы, сохраняя первое оставшееся вхождение. Счётчики результата и удалений позволяют проверить правило.
Точное сравнение сохраняет важные различия
В точном режиме Apple и apple различаются, как и `North Hall` и `North Hall` с двумя внутренними пробелами. Обрезка затрагивает только края, а не середину элемента. Точный режим безопаснее, если регистр или пунктуация имеют значение. После обработки сопоставьте счётчики и просмотрите результат перед заменой исходника.
Режим без регистра узкий, а не нечёткий
Режим без регистра переводит ключи сравнения в Unicode-нижний регистр, но сохраняет написание первого вхождения. Он не удаляет диакритику, не транслитерирует, не исправляет орфографию, не схлопывает внутренние пробелы и не приравнивает сокращения. Café и cafe остаются разными. Узкий контракт не позволяет без оснований объединить разные элементы.
Удаляйте дубли до необязательной сортировки
ListClean удаляет дубли до финальной сортировки. При сохранении порядка правило первого вхождения видно напрямую. Если сортировка включена, те же оставшиеся значения переставляются только затем. Если бы сортировка шла раньше, она могла бы изменить выбранное написание среди равных строк. Фиксированный порядок отделяет выбор представителя от отображения.