非通用IEnumerable和通用IEnumerable <T>有什么区别?

idi*_*iot 9 c# generics syntax ienumerable

抱歉这个模糊的问题,但我一直在寻找一天中最好的部分,我已经阅读了一篇文章(这里有很多问题)但是找不到一个容易理解的答案.

我(我想)知道IEnumerable的用途,但我无法理解用泛型类型参数定义它意味着什么,例如:

IEnumerable<int> test = method();
Run Code Online (Sandbox Code Playgroud)

这只是让我发疯!请让我摆脱痛苦并解释它意味着什么?

sma*_*man 13

An IEnumerable基本上是一组对象.它具有GetEnumerator()允许您遍历可枚举中的所有对象的方法.

An IEnumerable<int>基本上是整数的集合.它有一个方法GetEnumerator(),允许您遍历枚举中的所有整数.

IEnumerable<int> test = method();意味着method()从某个地方获取整数的集合.它可以是List,数组或其他一些数据类型,但它绝对是它们的一组,它们都是整数,并且您可以遍历它们.

这篇文章也许有帮助:IEnumerable和Array,IList和List之间有什么区别?