Использование 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.