我正在搞乱泛型和 IEnumerable,但我有点卡住了。这就是我想要做的事情:我想要一个返回任何集合类型的方法 - 实现 IEnumerable (?) - (例如:列表、堆栈、队列......)
此外,我希望能够返回任何数据类型的任何集合类型。所以我希望这个方法能够返回 aList<string>,
和 a Stack<int>
,以及 a 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
了。
将不胜感激任何建议或想法:)