非常によく似たLINQクエリがいくつかあります。
var city = "Hamburg";
var query1 =
from c in DB.Customers
join address in DB.Addresses on c.ID equals address.CustomerID
where address.City == city
select c;
var query2 =
from c in DB.Customers
join address in DB.Addresses on c.ID equals address.CustomerID
where address.City.StartsWith(city)
select c;
etc.
ループを使用してクエリを作成し、冗長性を減らしたいと思います。
var city = "Hamburg";
var expressions = new Expression<Func<string, bool>>[] {
a => a == city,
a => a.StartsWith(city)
};
for(int i = 1; i <= 2; i++) {
queries.Add(
from c in DB.Customers
join address in DB.Addresses on c.ID equals address.CustomerID
where expressions[i](address.City)
select c
);
}
しかし、今は式の配列を作成する方法がわかりません。何か案が?