У меня возникла ситуация в C# web api, где мне нужно будет получить список различных объектов из моей базы данных и вам нужно реализовать некоторую логику, вызвав различные методы.C# Общий метод для списка различных объектов
Как я могу лучше достичь этого путем написания функции общего для всех 3-х объектов
например
есть два сценария списка
блокировкивесь список заблокирован (не исходящее и исключение исключений, если весь список заблокирован)
только один объект заблокирован (фильтр d удалить этот элемент, если он заблокирован из списка)
List<Object1> list1; List<Object2> list2; List<Object3> list3; private FilterLockedEntities(List<Object1> list1){ if(list1[0].isListLocked) //whole list is locked throw ValidationException("Message") list1.RemoveAll(a => a.IsLocked); //filter locked entities //some more logic common to all } private FilterLockedEntities(List<Object2> list2){ if(list2[0].isListLocked) //whole list is locked throw ValidationException("Message") list2.RemoveAll(a => a.IsLocked); //filter locked entities //some more logic common to all } private FilterLockedEntities(List<Object3> list3){ if(list3[0].isListLocked) //whole list is locked throw ValidationException("Message") list3.RemoveAll(a => a.IsLocked); //filter locked entities //some more logic common to all }
Я имею ту же логику в каждом из трех функций, но со списком различных объектов.
Есть ли способ, которым я могу использовать один метод вместо трех различных функций, которые трудно поддерживать из-за избыточной логики. Если есть логика изменения, ее необходимо обновить во всех трех местах.
Вы можете изменить определение объектов? Одним простым способом было бы просто реализовать интерфейс с полем «IsLocked». – GBreen12
Делает ли код в '// какой-то другой логике, общей для всех', со списками? Если да, то что и как? Если нет, то почему здесь код? – Enigmativity