如何将 Linq 表达式的片段存储在变量中并在查询中使用这些变量?

Kas*_*Kas 0 .net c# linq linq-expressions

我有一个这样的表达:

List<BAL.Receipt> ac = BAL.ApplicationInfo.db.Receipts.Where
                (x => x.InvoiceNo.StartsWith(txtSearch.Text)
                 | x.Alias.StartsWith(txtSearch.Text)
Run Code Online (Sandbox Code Playgroud)

我想要做的是将此表达式拆分为多个部分并将它们存储在变量中

喜欢

var a = x => x.InvoiceNo.StartsWith(txtSearch.Text);
var b = x => x.Alias.StartsWIth (txtSearch.Text) ; 
Run Code Online (Sandbox Code Playgroud)

查询时

List<BAL.Receipt> ac = BAL.ApplicationInfo.db.Receipts.Where( a & b) ; 
Run Code Online (Sandbox Code Playgroud)

有可能实现这一目标吗?

如果可能,请给我举个例子。

Eni*_*ity 6

你应该可以这样做:

Expression<Func<BAL.Receipt, bool>> a =
    x => x.InvoiceNo.StartsWith(txtSearch.Text);

Expression<Func<BAL.Receipt, bool>> b =
    x => x.Alias.StartsWIth(txtSearch.Text);

List<BAL.Receipt> ac =
    BAL.ApplicationInfo.db.Receipts
        .Where(a)
        .Where(b);
Run Code Online (Sandbox Code Playgroud)