Мені довелося зробити щось подібне, але методом StartsWith. Ось просте рішення, отримане від @Serge - appTranslator.
Ось метод розширення:
public static bool StartsWith(this string str, string value, CultureInfo culture, CompareOptions options)
{
if (str.Length >= value.Length)
return string.Compare(str.Substring(0, value.Length), value, culture, options) == 0;
else
return false;
}
І за один лайнер виродки;)
public static bool StartsWith(this string str, string value, CultureInfo culture, CompareOptions options)
{
return str.Length >= value.Length && string.Compare(str.Substring(0, value.Length), value, culture, options) == 0;
}
Акцентивні інцеситивні та випадкові інцеситивні старти, З якими можна назвати так
value.ToString().StartsWith(str, CultureInfo.InvariantCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase)
string.Normalize
?