Я бы избегал методов "if-then-else" или "switch" и использовал бы вместо него "словарь".
Я предполагаю, что у вас есть элемент управления, позволяющий пользователю выбирать число (т.е.5) поэтому вам также понадобится способ «динамически» добавить это в запрос.
Определите этот словарь:
var filters = new Dictionary<string,
Func<IQueryable<Country>, int, IQueryable<Country>>>()
{
{ ">", (cs, n) => cs.Where(c => c.Id > n) },
{ ">=", (cs, n) => cs.Where(c => c.Id >= n) },
{ "==", (cs, n) => cs.Where(c => c.Id == n) },
{ "<=", (cs, n) => cs.Where(c => c.Id <= n) },
{ "<", (cs, n) => cs.Where(c => c.Id < n) },
};
Теперь вы можете заполнить раскрывающийся список с помощьюключи из словаря, и тогда вы можете легко получить свой запрос, выполнив это:
country = filters[">"](country, 5);
Или, может быть, что-то вроде этого:
country = filters[dd.Value](country, int.Parse(tb.Text));
Выкрикните, если хотите ещеобъяснение.