Вам нужно, чтобы оно было динамичным? Возможно, сохраните сам запрос как лямбду в свойстве Tag вашей метки:
Predicate<DataColumn> clause = c => c.Field<int>("ageColumn") > 3
&& c.Field<int>("ageColumn") < 5;
label1.Tag = clause;
... затем повторно оцените ваш запрос при нажатии на ярлык:
var clause = (sender as Label).Tag as Predicate<DataColumn>;
myDataSource = dataSet.Tables[0].AsEnumerable().Where(clause);
Я не знаю, сработает ли это, но, по крайней мере, это позволит вам "прикрепить" предложение where к различным ярлыкам.
Я бы также рекомендовал взглянуть на Bindable LINQ , чтобы можно было связать результаты ваших запросов. Очень классные вещи.