是否可以使用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)
您是否尝试"存储"查询并在稍后的步骤中对其进行过滤,如下所示:
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)
| 归档时间: |
|
| 查看次数: |
5379 次 |
| 最近记录: |