У меня есть HashSet<string>
, который создается с использованием StringComparer.CurrentCultureIgnoreCase
, и я широко использую .Contains (строковый ввод) для проверки ввода пользователя. Если пользователь вводит значение в неправильном регистре, .Contains = true, что правильно, но мне нужно также исправить регистр; например, если пользователь запрашивает myvalue
, а MyValue
находится в хэш-наборе. Какой самый эффективный способ также вернуть MyValue
, чтобы вводимые пользователем данные были скорректированы с учетом регистра?
Вот примерный пример того, что я имею в виду:
static HashSet<string> testHS = new HashSet<string>(StringComparer.CurrentCulture);
static bool InputExists(string input, out string correctedCaseString)
{
correctedCaseString = input;
if (testHS.Contains(input))
{
// correctedCaseString = some query result of the cased testHS value?
return true;
}
return false;
}