linq クエリを使用した次のコードがあります。
class Program
{
static void Main(string[] args)
{
var allProfessionals = new Collection<Professional>
{
new Professional { Name = "Bruno Paulovich Silva" },
new Professional { Name = "Ivan Silva Paulovich Bruno"},
new Professional { Name = "Camila Campos"}
};
var namesSearch = new[] {"bruno", "silva"};
var query = namesSearch.Aggregate(allProfessionals.AsQueryable(), (current, nome) => current.Where(oh => oh.Name.ToLower().Contains(nome.ToLower())));
foreach (var res in query.ToList())
{
Console.WriteLine(res.Name.ToLower());
}
}
}
結果は次のとおりです。
Bruno Paulovich Silva
Silva Paulovich Bruno
linq query Aggregate を別のときに再利用できる汎用メソッドに変える方法を知りたいです。
以下の例では、プロジェクトで使用されている一般的なクエリについて私が理解していることを示しています。
public IQueryable<T> QueryBy(Expression<Func<T, bool>> criteria)
{
return DbSet.Where(criteria);
}
ps: 下手な英語でごめんなさい