Возможно, я просто помню вещи полностью назад, но я хотел бы узнать больше о том, что я делаю неправильно ...C#: возвращение унаследованного класса из экземпляра его базового класса (общий список)
Я объявил класс не что иной, чем прямое наследование от общего списка (сделано для упрощения именования), что-то вроде этого:
public class FooList : List<Foo> {}
теперь в другом методе совершенно отдельном от этого класса, я пытаюсь для возврата экземпляра этого класса, однако я хочу отфильтровать класс на основе критерия, поэтому я использую выражение лямбда:
var list = new FooList(); // imagine this fills it with different items
var filtered = list.FindAll(c => c.Something == "filter criteria");
теперь согласно методу FindAll, это СЛЕДУЕТ вернуть список [Foo]. Однако я хочу вернуть этот объект как FooList, а не List [Foo]. Должен ли я создать новый экземпляр FooList и скопировать элементы из списка [Foo]?
Если да, то почему? почему я не могу напрямую преобразовать список в FooList, так как они являются одним и тем же объектом?
Если это МОЖНО быть сделано, как мне это сделать?
большое спасибо!
Должно ли мы воспринимать это '{}' как определение FooList буквально? Или вы хотите добавить некоторых участников? –