private int LinearIndexOf(string fieldName, CompareOptions compareOptions)
{
CompareInfo compareInfo = _compareInfo;
if (null == compareInfo)
{
if (-1 != _defaultLocaleID)
{
compareInfo = CompareInfo.GetCompareInfo(_defaultLocaleID);
}
if (null == compareInfo)
{
compareInfo = CultureInfo.InvariantCulture.CompareInfo;
}
_compareInfo = compareInfo;
}
int length = _fieldNames.Length;
for (int i = 0; i < length; ++i)
{
if (0 == compareInfo.Compare(fieldName, _fieldNames[i], compareOptions))
{
_fieldNameLookup[fieldName] = i; // add an exact match for the future
return i;
}
}
return -1;
}