Использование C # Count () с функцией
Вопрос
Я пытаюсь выяснить, сколько раз максимальное значение массива встречается в массиве, используя .Count ()
с предикатом внутри. Однако я не совсем понимаю, как это сделать. Прочитав скудный пример MSDN, я понял, что понял, но, видимо, нет!
Это то, о чем я думал:
string[] test = { "1", "2", "3", "4", "4" };
string max = test.Max();
Label1.Text = test.Count(p => p == max);
Но это не сработало. Поэтому я попытался изменить max на целое число, чтобы посмотреть, сработает ли это, но это тоже не сработало.
Решение
Вы можете использовать функцию Where, чтобы сначала отфильтровать, а затем считать:
Label1.Text = test.Where(p => p == max).Count().ToString();
Другие советы
Использование Количество (предикат)
все в порядке. Вам просто нужно преобразовать возвращаемое значение (которое является целым числом) в строку.
Label1.Text = test.Count(p => p == max).ToString();
int[] test = { 2, 45, 3, 23, 23, 4, 2, 1, 1, 1, 1, 23, 45, 45, 45 };
int count = test.Count(i => i == test.Max());
Теперь у вас есть счет, который является вашим последним счетом. Имеет больше смысла с коллекцией int. Теперь, чтобы отобразить его, вы можете просто вызвать ToString () на счетчике.
Попробуйте что-то вроде:
Label1.Text = test.Where(t => t == test.Max()).Count().ToString();