首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将LINQ语句作为lambda传入

如何将LINQ语句作为lambda传入
EN

Stack Overflow用户
提问于 2011-09-09 18:25:40
回答 2查看 123关注 0票数 0

我希望这不是一个太基本的问题--我看过类似的问题,但似乎无法理解,所以我寻求帮助。

我正在使用一个存储库模式,我想让它成为泛型--下面是我为泛型准备的:

代码语言:javascript
代码运行次数:0
运行
复制
    static public IQueryable<T> Get(Func<IQueryable<T>> pred, uint page=0, uint pageSize=10)
    {
         return pred()
                .Skip((int)(page * pageSize))
                .Take((int)pageSize);
    }

所以我想调用它,但是得到一个“有无效的参数”,不管我尝试什么lambda。

如果我声明一个返回IQueryable的方法,并将其作为第一个参数传递,那么它就可以工作--没有编译错误。我被难住了。

请帮帮忙?用lambda调用它的正确方式是什么?或者,如果我的泛型出了问题,如何最好地声明它?我认为返回IQueryable的Func是最好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-10 00:09:03

通常,您只需获取IQueryable<T>并直接使用它,而不是接受Func<IQueryable<T>>,

代码语言:javascript
代码运行次数:0
运行
复制
static public IQueryable<T> Get<T>(IQueryable<T> source, uint page=0, uint pageSize=10) 
{ 
     return source 
            .Skip((int)(page * pageSize)) 
            .Take((int)pageSize); 
}
票数 0
EN

Stack Overflow用户

发布于 2011-09-09 18:32:36

Get缺少T泛型

代码语言:javascript
代码运行次数:0
运行
复制
static public IQueryable<T> Get<T>(Func<IQueryable<T>> pred, uint page = 0, uint pageSize = 10)
        {
            return pred()
                   .Skip((int)(page * pageSize))
                   .Take((int)pageSize);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7360270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档