系统首选哪种采集接口(interface)?我所说的系统是指存储库、服务等。因此我需要选择 IEnumerable、ICollection、IList,甚至可能是 List。
我想理论上使用 IEnumerable 会更好。但是使用起来不太方便:例如,我必须使用 GetElementAt 方法而不是索引器。
我目前的选择是 IList,但我对此决定表示怀疑。
最佳答案
这实际上归结为您希望允许您的存储库、服务等的消费者访问什么类型。
如果您只希望消费者通读该系列,请使用 IEnumerable<T>
(没有写类型的方法可用)。
如果您希望消费者直接添加到集合中,那么 ICollection<T>
中的方法会给他们的。
一般来说,我尝试将集合公开为 IEnumerable<T>
尽我所能。当用户想要向集合中添加内容时,他们必须调用单独的方法而不是直接写入集合本身。它使您有机会验证输入、执行其他检查等。
关于c# - 选择什么采集接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796483/