我有一个很长的Linq Where
子句,我想用谓词列表填充它。
List<Expression<Func<Note, bool>>> filters = new List<Expression<Func<Note, bool>>>();
filters.Add(p => p.Title != null && p.Title.ToLower().Contains(searchString));
filters.Add(p => p.Notes != null && p.Notes.ToLower().Contains(searchString));
filters.Add(GlobalSearchUser((List < User > users = new List<User>() { p.user1, p.user2, p.user3, p.user4 }), searchString));
notes = dataAccess.GetList<Note>(pn => pn.ProjectVersionID == projectVersionID, filterExtensions.ToArray())
.Where(filters.ToArray()).Take(10).ToList();
然而,我遇到了这个错误:
无法将
'System.Linq.Expressions.Expression<System.Func<project.Contracts.DTOs.Note,bool>>[]' 转换为 'System.Func<project.Contracts.DTOs.Note,bool>'
这是在.where子句上的错误。去掉.where之后编译就可以通过。