gpt4 book ai didi

collections - 实体集合的 IList 与 IEnumerable

转载 作者:行者123 更新时间:2023-12-03 04:24:11 26 4
gpt4 key购买 nike

当我的域中存在包含事物列表的实体时,它们是否应该公开为 IList 或 IEnumerables?例如。 Order 有一堆 OrderLines。

最佳答案

IEnumerable<T> 代表一系列可以迭代的项目(例如使用 foreach),而 IList<T> 是一个可以添加或删除的集合。

通常,您希望能够通过添加或删除 OrderLine 来修改订单,因此您可能希望 Order.Lines 为 IList<OrderLine> .

话虽如此,您应该做出一些框架设计决策。例如,是否可以将相同的 OrderLine 实例添加到两个不同的订单中?可能不会。因此,考虑到您希望能够验证是否应将 OrderLine 添加到订单中,您可能确实希望将 Lines 属性仅显示为 IEnumerable<OrderLine> ,并提供可以处理该验证的 Add(OrderLine) 和 Remove(OrderLine) 方法。

关于collections - 实体集合的 IList 与 IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376708/

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