gpt4 book ai didi

c# - 返回一个通用的 IEnumerable

转载 作者:IT王子 更新时间:2023-10-29 04:33:10 25 4
gpt4 key购买 nike

我正在摆弄泛型和 IEnumerable abit,但我有点卡住了。这是我正在尝试做的事情:我想要一个返回任何集合类型的方法 - 实现 IEnumerable (?) - (例如:List,Stack,Queue,...)

此外,我希望能够返回任何数据类型的任何集合类型。所以我希望这个方法能够返回 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不再。

将不胜感激任何建议或想法:)

最佳答案

您需要添加一个 generic type parameter到你的方法:

public IEnumerable<T> ReturnSomething<T>() 
{
Stack<T> stackOfT = new Stack<T>();
return stackOfT;
}

类型参数出现在方法名之后,参数之前。一个方法也可以有多个类型参数。

调用方法时可以指定类型:

IEnumerable<int> myInts = ReturnSomething<int>();

关于c# - 返回一个通用的 IEnumerable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11441395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com