Linq包含返回所有项目或选定项目?

Blu*_*ppy 1 c# linq

是否可以使用where子句编写linq select,该子句可以选择ALL项目或特定项目?在SQL中,我可以使用"像'%'这样的货币"来返回所有内容.我正在尝试编写一种方法,以便我可以传递货币(在其他一些东西中)并重复使用相同的方法.

例如

只是英镑

from a in accounts
where currency.Contains('GBP')
select a
Run Code Online (Sandbox Code Playgroud)

只是英镑

from a in accounts
where currency == 'GBP'
select a
Run Code Online (Sandbox Code Playgroud)

所有货币?

from a in accounts
where currency like '%'
select a
Run Code Online (Sandbox Code Playgroud)

Joa*_*iro 7

您是否尝试"存储"查询并在稍后的步骤中对其进行过滤,如下所示:

IEnumerable<AccountClass> GetAccounts(string filter = null)
{
    var query = from a in accounts select a;
    if (!string.IsNullOrEmpty(filter))
    {
        query = query.Where(a => a.Currency.Contains(filter));
    }
    return query;
}
Run Code Online (Sandbox Code Playgroud)

这可能会在单个查询中折叠,但对我来说似乎不太可读,并且可能无法使用LINQ-to-SQL(或将表达式转换为查询的其他LINQ-to- DB):

from a in accounts
where string.IsNullOrEmpty(filter) || a.Currency.Contains(filter)
select a
Run Code Online (Sandbox Code Playgroud)