gpt4 book ai didi

c# - 我应该始终返回 IEnumerable 而不是 IList 吗?

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

当我编写我的 DAL 或其他返回一组项目的代码时,我是否应该始终制作我的返回语句:

public IEnumerable<FooBar> GetRecentItems()

public IList<FooBar> GetRecentItems()

目前,在我的代码中,我一直在尝试尽可能多地使用 IEnumerable,但我不确定这是否是最佳实践?这似乎是正确的,因为我返回了最通用的数据类型,同时仍然描述了它的作用,但也许这样做是不正确的。

最佳答案

框架设计指南建议使用类 Collection当您需要返回可由调用者或 ReadOnlyCollection 修改的集合时对于只读集合。

这是优于简单 IList 的原因是那个IList如果它是只读的,则不会通知调用者。

如果您返回 IEnumerable<T>相反,某些操作对于调用者来说执行起来可能有点棘手。此外,您将不再为调用者提供修改集合的灵 active ,这是您可能想要也可能不想要的。

请记住,LINQ 包含一些小技巧,可以根据执行调用的类型优化某些调用。因此,例如,如果您执行 Count底层集合是一个列表,它不会遍历所有元素。

就个人而言,对于 ORM,我可能会坚持使用 Collection<T>作为我的返回值(value)。

关于c# - 我应该始终返回 IEnumerable<T> 而不是 IList<T> 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1072614/

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