gpt4 book ai didi

c# - 枚举的好处

转载 作者:行者123 更新时间:2023-11-30 19:54:36 25 4
gpt4 key购买 nike

我很难理解 IEnumerable 的好处。我了解 Enumerables 允许将执行推迟到以后。

请在此处查看示例:https://msdn.microsoft.com/en-us/library/system.collections.ienumerable(v=vs.110).aspx .在此示例中,数组已填充到主类中,然后注入(inject)到 IEnumerable 类中。因此,这似乎消除了将执行推迟到以后的优势。我在这里缺少什么?

最佳答案

IEnumerable 的主要目的不是将执行推迟到以后。 IEnumerable 的目的是提供一种方法来迭代对象的各个部分。这些部分可以是列表的项目,但它们也可以是(例如)string 的字符。 . IEnumerable接口(interface)存在是因为并非每个允许对其部分进行迭代的类都是集合或列表(例如 string )和 IEnumerable提供了一个最小的接口(interface)来实现这一点,而无需实现一个完整的 ICollectionIList .

IEnumerable 的主要和最重要的消费者是 foreach声明,自 time .NET 开始以来就存在。直到后来才出现了带有 Enumerable 的 LINQ同样基于 IEnumerable 构建的类(或更准确地说,在 IEnumerable<T> 上)接口(interface)。

说到 LINQ,您在问题中提到的延迟执行确实是 LINQ 的一个关键特性。这意味着您定义的查询直到 IEnumerable 的迭代才会执行。被执行。这使您可以在执行查询之前进一步优化查询。

虽然此延迟执行仅指如何 IEnumerable 被使用,而不是它做什么。延迟执行意味着您不会开始迭代 IEnumerable当您定义它时,但在程序的不同位置,例如 foreach , 一个 ToList等等

关于c# - 枚举的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41282631/

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