Я возился с дженериками и IEnumerable abit, но я как бы застрял. Вот что я пытаюсь сделать :Я хочу иметь метод, который возвращает любой тип коллекции -, который реализует IEnumerable (?)-(так, например, :Список, Стек, Очередь,...)
кроме того, я хочу иметь возможность возвращать любой тип коллекции любого типа данных. поэтому я хочу, чтобы этот метод мог возвращать List<string>,
, а также Stack<int>
, а также List<double>
... и т. д. и т. д.
public IEnumerable<T> returnSomething()
{
Stack<int> stackOfInts = new Stack<int>();
List<string> listOfStrings = new List<string>();
return stackOfInts;
}
это то, что я пробовал до сих пор. это, однако, не работает, я получаю эту ошибку:
Cannot implicitly convert type 'System.Collections.Generic.Stack<int>' to 'System.Collections.Generic.IEnumerable<T>'. An explicit conversion exists (are you missing a cast?)
однако, если я заменю IEnumerable<T>
в сигнатуре метода на IEnumerable<int>
, я смогу вернуть любую коллекцию типа int. Однако это означает, что теперь я больше не могу вернуть ListOfStrings
.
будем признательны за любые предложения или идеи:)