可能重复:
Conditional Linq Queries
我们正在研究日志查看器。该用户可以选择按用户,严重程度等进行过滤。在Sql中我会添加到查询字符串,但我想用Linq来做。我怎样才能有条件地添加where-clause?
答案 0 :(得分:3)
假设您正在使用IEnumerable
,请执行以下操作:
IEnumerable<LogMessage> logs = /* whatever your source is */
if(condition) {
logs = logs.Where(log => log.Severity == Severity.Error); // or whatever
}
你也可以多次这样做。如果您的数据来源为IQueryable
,请使用该数据源代替IEnumerable
。