private Func<string, bool> CreateSearchComparer(string query, bool useRegex, bool caseSensitive)
{
if (useRegex)
{
var regexOption = caseSensitive ? RegexOptions.None : RegexOptions.IgnoreCase;
var regex = new Regex(query, regexOption);
return x => regex.IsMatch(x);
}
else
{
var comparisonType = caseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase;
return x => x.IndexOf(query, comparisonType) != -1;
}
}