Мне нужна помощь, у меня есть метод, который повторяется 6 раз в моем классе, и единственное, что изменяется в каждом из методов, это свойство LINQ (в примере " имя, но у меня также есть имя для фамилии, фирменного наименования, идентификатора пользователя, статуса). Я хотел бы получить некоторую помощь рефакторинга это так, что я могу использовать только один метод и сделать свойство быть динамическими или передаются в.Помощь с рефакторингом метода LINQ
private static IQueryable<MyModel> FilterFirstName(IQueryable<MyModel> query, string searchText, string searchFilter)
{
switch (searchFilter.ToLower())
{
case "contains":
query = query.Where(x => x.FirstName.ToLower().Contains(searchText.ToLower()));
break;
case "does not contain":
query = query.Where(x => !x.FirstName.ToLower().Contains(searchText.ToLower()));
break;
case "starts with":
query = query.Where(x => x.FirstName.StartsWith(searchText, StringComparison.InvariantCultureIgnoreCase));
break;
case "ends with":
query = query.Where(x => x.FirstName.EndsWith(searchText, StringComparison.InvariantCultureIgnoreCase));
break;
case "equals":
query = query.Where(x => x.FirstName.Equals(searchText, StringComparison.InvariantCultureIgnoreCase));
break;
}
return query;
}
Всегда ли строковое свойство? – spender
да, это всегда свойство строки – Madhatter5501