【发布时间】:2012-07-11 14:05:22
【问题描述】:
我正在搞乱泛型和 IEnumerable,但我有点卡住了。 这是我正在尝试做的事情: 我想要一个返回任何集合类型的方法 - 实现 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了。
将不胜感激任何建议或想法 :)
【问题讨论】:
标签: c# generics ienumerable