Не работает функция 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");
}
Проблема в Console.Read().
Эта функция возвращает вам число, код одного введённого символа. Поэтому в digit будет не то число, которое вы ввели, а его код.
Номера видимых символов начинаются от 0x20 == 32, и поскольку числа в массиве лежат в промежутке от 0 до 29, ни одно число найдено и правда не будет.
Попробуйте заменить Console.Read() на Console.ReadLine().
P. S.: Если вы научитесь пользоваться отладчиком, такие вопросы будут решаться влёт без «помощи клуба».
Сборка персонального компьютера от Artline: умный выбор для современных пользователей