gpt4 book ai didi

c# - FOR-EACH 通过 IEnumerable 与列表

转载 作者:行者123 更新时间:2023-11-30 18:56:08 27 4
gpt4 key购买 nike

如果我的 for-each 循环通过方法参数,如果我将该参数作为 IEnumerable 传递,或者如果我传递该参数,是否有任何好处或区别作为列表

最佳答案

如果您的 IEnumerable 是由 List 实现的,则否;没有不同。但是在概念上有很大的不同; IEnumerable 说“我可以被枚举”,这也意味着项目的数量是未知的,枚举不能被逆转,也不能随机访问。列表说“我是一个完全形成的列表,已经填充;我可以被逆转和随机访问”。

所以你通常应该构建你的函数接口(interface)来接受与你的操作兼容的最低功能;如果您只想迭代地向前枚举,则接受 IEnumerable - 这允许您的函数在更多场景中使用。

如果您让您的函数仅接受 List(),那么任何将数组或 IEnumerable 传递给它的调用者都必须在调用您的函数之前将他们的输入转换为 List() - 这可能比简单地传递他们的数组的性能更差或直接使用 IEnumerable。从这个意义上说,接受 IEnumerable 会带来更好的性能代码。

关于c# - FOR-EACH 通过 IEnumerable 与列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656621/

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