Если у вас много условий, вы можете переместить код в метод, чтобы улучшить читаемость / повторное использование:
albums = _albumRepository.Albums.Where(p => p.Match(searchString))
Затем создайте метод расширения для типа p
(Albums
class) или просто добавьте его в сам класс, если в вашем проекте будет больше смысла.
public static class AlbumsExtensions
{
public static bool Match(this Album album, string search)
{
// whatever complex logic you have stays here
var search = searchString.ToLower();
var result = p.Name.ToLower().Contains(search) ||
p.Artist.ToLower().Contains(search) ||
p.Genre.ToLower().Contains(search);
return result ;
}
}
И последнее, но не менее важное: обратите внимание, что сравнение строк не является тривиальным, если вы поддерживаете Unicode и несколько языков.
Для получения дополнительной информации посмотрите (например):
Без учета регистра 'Содержит (строка)'