@INTERNALINTERFERENCE

Как сократить данный код?

У меня осуществляется поиск по некоторым колонкам, я написал его так:
SearchPredicate = ( lEntry, searchText ) =>
                lEntry.Message.Contains( searchText, StringComparison.OrdinalIgnoreCase ) ||
                lEntry.Sender.Contains( searchText, StringComparison.OrdinalIgnoreCase ) ||
                lEntry.Level.Contains( searchText, StringComparison.OrdinalIgnoreCase );


Мне кажется, что все это можно сократить, но я не знаю как.
Как это сделать?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
Если совсем упороться, то можно вот так сделать:
new[] { lEntry.Message, lEntry.Sender, lEntry.Level }
  .Any(x => x.Contains(searchText, StringComparsion.OrdinalIgnoreCase)

Ну или ещё можно написать свой метод, который будет в любой из n строк искать подстроку.

Например вот такой:
public static bool IsSubstringOfAny(this string search, params string[] samples) =>
  samples.Any(x=>x.Contains(search, StringComparsion.OrdinalIgnoreCase));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы