Предположим, у меня есть разрешенные символы new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' , '.'
If string это "54323.5" - это будет нормально!
Если строка равна "543g23.5" - это не будет нормально, поскольку она содержит "g", которого нет в списке моих разрешенных символов.
Пустая строка считается недействительной.
Я пытаюсь добиться этого с помощью "IndexOfAny()", но без удачи пока. Конечно, передача всех неразрешенных символов в этот метод не будет решением.
Обратите внимание, что список разрешенных символов может измениться, и изменение алгоритма проверки на основе изменения списка не считается решением.
Для вас, ребята, которые спрашивали меня о коде, который я пробовал, вот он:
Код: Выделить всё
private bool CheckInvalidInput(string stringToCheck)
{
char[] allowedChars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
var chars = Enumerable.Range(0, char.MaxValue + 1)
.Select(i => (char)i)
.ToArray();
var unallowedChars = chars.Except(allowedChars).ToArray();
bool validString = true;
if(stringToCheck.IndexOfAny(unallowedChars) != -1)
{
validString = false;
}
return validString;
}