如何通过参数重用LINQ Select Expression [英] How to reuse LINQ Select Expression with arguments

查看:114
本文介绍了如何通过参数重用LINQ Select Expression的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写了一个LINQ查询,并为Select子句创建了一个表达式以重用它.

I write a LINQ query and for Select clause I created an Expression to reuse it.

我的查询看起来像这样

 DataContext.Single.Select(SearchSelector).ToList();

其中搜索选择器"定义为

Where as Search Selector defined as

 private Expression<Func<Singles, SearchSingles>> SearchSelector = s =>
    new SearchSingles
    {
    };

上面的方法工作正常,但是如果我想使用两个输入参数怎么办?我将如何调用它?

The above works fine, but what if I want to use two input parameters? How would I invoke it?

 private Expression<Func<Singles,string, SearchSingles>> SearchSelector = (s,y) =>
    new SearchSingles
    {
    };

推荐答案

有一个方法可以创建需要给定特定字符串的表达式,而不是拥有一个存储表达式的字段:

Rather than having a field that stores the expression, have a method that creates the expression that you need given a particular string:

private static Expression<Func<Singles, SearchSingles>> CreateSearchSelector(
    string foo)
{
    return s =>
        new SearchSingles
        {
            Foo = foo,
        };
}

然后您可以像下面这样使用此方法:

You can then use this method like so:

DataContext.Single.Select(CreateSearchSelector("Foo")).ToList();

这篇关于如何通过参数重用LINQ Select Expression的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆