>Пробовал через if else, bool, но не получилось.
Странно. Задача же простая до невозможности. Ну, лови, что ли:
public static int GetInt(IEnumerable<int> _AllowedValues)
{
int Result;
do
{
Console.Write($"Please enter one of the following: {_AllowedValues.Aggregate(string.Empty, (x, y) => x += y + " ")} ");
Result = int.Parse(Console.ReadLine());
}
while (!_AllowedValues.Contains(Result));
return Result;
}
Вариант с проверкой на корректность ввода числа:
public static int GetInt(IEnumerable<int> _AllowedValues)
{
int Result;
bool ParsedOK;
do
{
Console.Write($"Please enter one of the following: {_AllowedValues.Aggregate(string.Empty, (x, y) => x += y + " ")} ");
ParsedOK = int.TryParse(Console.ReadLine(), out Result);
}
while (!ParsedOK || !_AllowedValues.Contains(Result));
return Result;
}
Необходимо вводить с консоли либо "6" либо "10", в остальных случаях ввода (1,2,3,4,5,7,8,9,11 и т.д.) выдавать ошибку "Ошибка выбора напряжения". Пробовал через if else, bool, но не получилось.