Ho una lunga clausola Linq Where
che vorrei compilare con un elenco di predicati.Elenco dei predicati C# passato a Linq Clausola Dove
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();
Comunque sto ottenendo questo errore:
cannot convert from
'System.Linq.Expressions.Expression<System.Func<project.Contracts.DTOs.Note,bool>>[]' to 'System.Func<project.Contracts.DTOs.Note,bool>'
Che è un errore sulla clausola .dove. Tirando fuori il .where si compila bene.
Aggiungere qualcosa circa il fatto che lui sta usando 'List
xanatos
@xanatos yeah Ho aggiunto alcuni commenti :) – Hogan
Può essere meglio servito usando '.Aggregate() 'pure – moarboilerplate