如何通过参数重用LINQ Select Expression [英] How to reuse LINQ Select Expression with arguments
本文介绍了如何通过参数重用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屋!
查看全文