Mam długą klauzulę Linq Where
, którą chciałbym wypełnić za pomocą listy predykatów.Lista predykatów C# przekazana do Linq gdzie klauzula
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();
Jednak dostaję ten błąd:
cannot convert from
'System.Linq.Expressions.Expression<System.Func<project.Contracts.DTOs.Note,bool>>[]' to 'System.Func<project.Contracts.DTOs.Note,bool>'
co stanowi błąd w klauzuli .gdzie. Wyciąganie.. Gdzie kompiluje się dobrze.
dodać coś o tym, że jest on przy użyciu 'List
xanatos
@xanatos tak Dodałem komentarze :) – Hogan
Można lepiej obsłużyć używając '.Aggregate() 'oraz – moarboilerplate