相关疑难解决方法(0)

我应该总是返回IEnumerable <T>而不是IList <T>吗?

当我正在编写我的DAL或其他返回一组项目的代码时,我是否应该总是返回语句:

public IEnumerable<FooBar> GetRecentItems()
Run Code Online (Sandbox Code Playgroud)

要么

public IList<FooBar> GetRecentItems()
Run Code Online (Sandbox Code Playgroud)

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

c# ienumerable

94
推荐指数
7
解决办法
4万
查看次数

将IQueryable linq查询转换为IEnumerable <T>取消linq优化的工作方式?

我在.NET上有点新手,我想知道linq是如何工作的,因为你可以一个接一个地使用许多linq查询,但是在用于传输信息或转换为列表之前,它们都没有真正执行,等
有2种重要的方法来获得一个LINQ查询,通过使用IQueryable<T>其获得的所有记录,然后将其与他们对记忆工作,这直接aplies在SQL中,其中过滤器,和IEnumerable.但是,让我们来看看这段代码:

            //Linq dynamic library
            IQueryable<Table> myResult = db.Categories
                .Where(a => a.Name.Contains(StringName))
                .OrderBy("Name")
                .Skip(0)
                .Take(10);

            if (myResult != null)
            {
                return myResult.AsEnumerable();
            } 
            else
            { return null; }
Run Code Online (Sandbox Code Playgroud)

我正在使用Linq动态库,这个查询的直接结果是IQueryable<T>,如果查询最终被返回IEnumerable,是否真的在sql上过滤了查询?还是在记忆中?

c# linq performance

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×2

ienumerable ×1

linq ×1

performance ×1