private bool MatchPattern(string text, int index)
{
if (_caseInsensitive)
{
if (text.Length - index < _pattern.Length)
{
return false;
}
TextInfo textinfo = _culture.TextInfo;
for (int i = 0; i < _pattern.Length; i++)
{
Debug.Assert(textinfo.ToLower(_pattern[i]) == _pattern[i], "pattern should be converted to lower case in constructor!");
if (textinfo.ToLower(text[index + i]) != _pattern[i])
{
return false;
}
}
return true;
}
else
{
return (0 == string.CompareOrdinal(_pattern, 0, text, index, _pattern.Length));
}
}