gpt4 book ai didi

c# - IEnumerable 和数组有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 18:11:24 25 4
gpt4 key购买 nike

谁能描述一下 IEnumerable 以及 IEnumerable 和数组之间的区别以及在哪里使用它。有关它的所有信息以及如何使用它。

最佳答案

数组是具有固定大小的对象的集合。

int[] array = [0, 1, 2];

这在您可能想要访问集合中特定位置的项目的情况下非常有用,因为每个元素在内存中的位置都是已知的

array[1];

另外,数组的大小可以快速计算。

另一方面,IEnumerable 基本上表示给定起始位置可以获得下一个值。这方面的一个例子可能是无限系列的数字:

public IEnumerable<int> Infinite()
{
int i = 0;
while(true)
yield return i++;
}

与数组不同,可枚举集合可以是任意大小,并且可以根据需要创建元素,而不是预先创建,这允许强大的构造,并被 LINQ 广泛用于促进复杂查询。

//This line won't do anything until you actually enumerate the created variable
IEnumerable<int> firstTenOddNumbers = Infinite().Where(x => x % 2 == 1).Take(10);

然而,获取特定元素的唯一方法是从头开始枚举到您想要的元素。这比从预先生成的数组中获取元素要昂贵得多。

当然可以通过数组进行枚举,所以数组实现了IEnumerable接口(interface)。

关于c# - IEnumerable 和数组有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577329/

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