возврат универсального IEnumerable

Я возился с дженериками и 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.

будем признательны за любые предложения или идеи:)

21
задан Thousand 11 July 2012 в 20:59
поделиться