Проверить каждый член коллекции целых чисел (вводимых пользователем) на принадлежность к string или int

Проблема на первый взгляд была проста, но оказалась сложнее. Помогите пж не могу понять как решить.

Нужно заполнить коллекцию целых чисел (15) данными вводимыми пользователем, и при этом проверить принадлежит ли каждый из них к int или к string.

  • В случае если все данные int вывести коллекцию.
  • В случае если данные типа string, оповестить в консоль об ошибке.

Если непонятно объяснил то задание в видео: (Циклы C# (for, foreach, while) - Учим Шарп #7)(1:01:52)


Ответы (1 шт):

Автор решения: aepot

Вот вам пример, изучайте. Здесь и while и for, только foreach я заменил на string.Join. И условия и интерполяция строк, и int и int[] массив.

Выполните код пошагово в режиме отладки, проверяйте значения переменных, смотрите как работает. Пробуйте многократно вводить не числа или дробные числа.

static void Main(string[] args)
{
    Console.Write("Введите количество чисел n от 1 до 15: ");
    int n;
    while (!int.TryParse(Console.ReadLine(), out n) || n < 1 || n > 15)
    {
        Console.Write("Некорректный ввод, введите n от 1 до 15: ");
    }

    int[] a = new int[n];

    for (int i = 0; i < n; i++)
    {
        Console.Write($"Введите a[{i}]: ");
        while (!int.TryParse(Console.ReadLine(), out a[i]))
        {
            Console.Write($"Не удалось распознать число, введите a[{i}]: ");
        }
    }

    Console.WriteLine($"Вы ввели {n} чисел:");
    Console.WriteLine(string.Join(", ", a));
    Console.ReadKey();
}
→ Ссылка