У меня есть список объектов ReportEntity, которые детализируют систему управления версиями различных правок и необходимы для заполнения отчета в формате PDF. Примерами полей могут быть что-то вроде VersionId, VersionStatus, VersionNumber. Каждое обновление определенного VersionId требует ввода в базу данных, и для этого конкретного отчета запрос не может быть изменен (очень неприятно), поэтому мое решение состоит в том, чтобы отфильтровать элементы из списка на основе определенных критериев.
- Если VersionStatus указан как «Удален», то все элементы списка, соответствующие этому VersionId, должны быть удалены.
- Если есть обновления для определенного VersionId, мне нужно отфильтровать все элементы, кроме для самого последнего VersionNumber.
Я пытался создать поток для фильтрации на основе этих условий, но я не совсем уверен, как проверить одно значение атрибута, чтобы удалить все элементы другим. Я не совсем уверен, как go об этой проблеме упростить c, не приняв сложного решения, которое включало бы в себя вложенные циклы и сильно повлияло на производительность.