Все это связано с LSP (принцип подстановки Лискова).
По сути, вместо использования реализаций лучше кодировать абстракции.
ВВ этом конкретном случае, если все, что вы делаете, это циклически перемещаетесь по списку, вы можете использовать IEnumerable<T>
в качестве простейшей абстракции - таким образом, у вас не будет для использования List<T>
, но любой тип коллекции в вашей функции.
Это позволяет вашим функциям быть более многократно используемыми и уменьшает сцепление .