У меня есть длинное предложение Linq Where
, которое я бы хотел заполнить предикатным списком.Список предикатов C#, переданный 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();
Однако я получаю эту ошибку:
cannot convert from
'System.Linq.Expressions.Expression<System.Func<project.Contracts.DTOs.Note,bool>>[]' to 'System.Func<project.Contracts.DTOs.Note,bool>'
Какая ошибка на пункте .где. Вытащить компиляцию просто отлично.
Добавить что-то о том, что он использует 'List
xanatos
@xanatos Да, я добавил несколько комментариев :) – Hogan
Может быть лучше, если использовать '.Агрегат() 'также – moarboilerplate