Использование C# Count () с функцией

Я пытаюсь выяснить, сколько раз максимальное значение массива происходит в массиве с помощью LINQ это.Count() с предикатом внутри. Однако, я не совсем понимаю как это сделать. Читая скудный пример MSDN, я думал, что понял, но, по-видимому, нет!

вот о чем я подумал:

string[] test = { "1", "2", "3", "4", "4" };
string max = test.Max();
Label1.Text = test.Count(p => p == max);

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

4 ответов


вы можете использовать функцию Where для фильтрации сначала, а затем count:

Label1.Text = test.Where(p => p == max).Count().ToString();

используя Count(predicate) ОК. Вам просто нужно преобразовать возвращаемое значение (которое является целым числом) в строку.

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() на count.


попробуйте что-то вроде:

Label1.Text = test.Where(t => t == test.Max()).Count().ToString();