Не рабоает count()

170
02 января 2019, 17:00

Не работает функция count(). Она должна искать в массиве числа которые совпадают с введеным.Но всега выдает 0.Помогите раобраться

   static void Main(string[] args)
    {
        Console.Write("Enter digit(30 MAX): ");
        int digit=Convert.ToInt32(Console.Read());
        int[] arr = new int[30];
        Random rnd = new Random();
        for (int i = 0; i < arr.Length; i++)
            arr[i] = rnd.Next(0,30);
        for (int i = 0; i < arr.Length; i++)
            Console.Write(arr[i]+" ");
        int sum = arr.Count(p => p == digit);
        Console.Write($"\n\nCount = {sum}\n\n\n");

        }
Answer 1

Проблема в Console.Read().

Эта функция возвращает вам число, код одного введённого символа. Поэтому в digit будет не то число, которое вы ввели, а его код.

Номера видимых символов начинаются от 0x20 == 32, и поскольку числа в массиве лежат в промежутке от 0 до 29, ни одно число найдено и правда не будет.

Попробуйте заменить Console.Read() на Console.ReadLine().

P. S.: Если вы научитесь пользоваться отладчиком, такие вопросы будут решаться влёт без «помощи клуба».

READ ALSO
Как отделить группу от цифр?

Как отделить группу от цифр?

Как при замене по регулярке в строке подстановки после группы $1 написать нечто, начинающееся с цифры, чтобы оно не стало частью номера группы?

177
Как добавить box collider через код

Как добавить box collider через код

Создаю копию объекта через Instantiate (у оригинала стоит Box-Collider) в итоге у копии компонент такой есть, но галочка почему-то снятаКак галочку поставить...

187
C# генерация случайного пути

C# генерация случайного пути

У меня есть двумерный массив целых чиселВ данном массиве есть точка входа [0,0] , а так же точка выхода [Length-1,Length-1]

173
Стрелка на кривой Безье

Стрелка на кривой Безье

Подскажите, как можно нарисовать в конце кривой Безье стрелку? Есть множество примеров как это сделать для прямой линии (1 , 2 , 3), но именно...

174