У меня есть серия коллекций типов, все из которых получены из одного и того же базового класса и набора предикатов для поиска каждого из них, например.Обработка нескольких коллекций на основе одного базового типа
public abstract class Animal { ... }
public class Dog : Animal { ... }
public class Cat : Animal { ... }
...
Func<Dog, bool> DogFinder = ...;
Func<Cat, bool> CatFinder = ...;
...
List<Dog> Dogs = GetDogs(DogFinder);
List<Cat> Cats = GetCats(CatFinder);
Есть ли способ, которым я могу работать, чтобы избежать повторения для каждого типа?
Следующий шаг - взять собак, кошек и преобразовать их в общий тип «Результат» и вернуть коллекцию из них, которая довольно проста, но мне кажется, что повторение посередине должно быть учтено так, что, когда я добавлю больше типов «Животных», они будут масштабироваться чисто.
Вы дали какую-либо мысль к использованию интерфейсов? Это позволит вам сделать что-то вроде «GetAnimal (IAnimal animal)» и, таким образом, сократить избыточность кода по всем направлениям. – Porschiey