草庐IT

c# - 将 IList 或 IEnumerable 转换为数组的最佳方法

我有一个HQL查询,它可以生成结果的IList或结果的IEnumerable。但是,我希望它返回我选择的实体数组,实现该目标的最佳方法是什么?我可以枚举它并构建数组,或者使用CopyTo()定义的数组。有没有更好的办法?我采用了CopyTo方法。 最佳答案 您使用的是哪个版本的.NET?如果是.NET3.5,我只需调用ToArray()即可。如果您只有一个非泛型IEnumerable,请执行以下操作:IEnumerablequery=...;MyEntityType[]array=query.Cast().ToArray();如果您

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

当我编写我的DAL或其他返回一组项目的代码时,我是否应该始终制作我的返回语句:publicIEnumerableGetRecentItems()或publicIListGetRecentItems()目前,在我的代码中,我一直在尝试尽可能多地使用IEnumerable,但我不确定这是否是最佳实践?这似乎是正确的,因为我返回了最通用的数据类型,同时仍然描述了它的作用,但也许这样做是不正确的。 最佳答案 框架设计指南建议使用类Collection当您需要返回可由调用者或ReadOnlyCollection修改的集合时对于只读集合。这是优

c# - 什么时候用 IList 什么时候用 List

我知道IList是接口(interface),List是具体类型,但我仍然不知道何时使用它们。我现在正在做的是,如果我不需要使用接口(interface)的Sort或FindAll方法。我对吗?是否有更好的方法来决定何时使用接口(interface)或具体类型? 最佳答案 我遵循两条规则:接受最基本的类型返回用户需要的最丰富的类型因此,在编写采用集合的函数或方法时,不要将其编写为采用List,而应采用IList、ICollection或IEnumerable。通用接口(interface)仍然适用于异构列表,因为System.Obj