По сути, я также провожу некоторые исследования по этой теме, но, к сожалению, я не нашел ни одного, ни хорошего примера для этого. В моем коде я сейчас использую такое решение:
Это ваш запрос:
from cust in Customers
where cust.City == "London"
select cust;
Если вы хотите динамически изменить Lquery вместо cust.City == "London" на cust.Street == "London". Вы должны использовать оператор if-else, например, такой:
var lquery = (from cust in Customers
where cust.City == "London"
select cust).ToList();
if(true){
lquery = (from cust in Customers
where cust.Street == "London"
select cust).ToList();
}
GridView.DataSource = lquery;
GridView.Databind();
Код выше длиннее вашего кода, но может удовлетворить вашу тему. В моем проекте я все еще использую этот код, потому что он не задерживает мою программу, но удовлетворяет мою текущую проблему.