Не работает выбор контролов с DockStyle.Top

167
14 ноября 2021, 14:10

У меня есть панель с контролами, у некоторых Dock = DockStyle.Top, у некоторых Bottom. Через

Form1.pageWithMessages.Controls.OfType<UserControl4> ().Select (x => x.Dock == DockStyle.Top).Count ();

Пытаюсь подсчитать количество контролов с DockStyle.Top, но почему-то Select возвращает все контролы, даже те, которые не надо. В чём может быть проблема? Заранее спасибо за ответ!

P.S. Я проверял, в панеле есть контролы с DockStyle.Bottom.

Answer 1

Вы не правильно пользуетесь LINQ, Select() нужен тогда, когда надо изменить представление элементов. Он вычисляет выражение для каждого элемента. Результатом выполнения вашего запроса, если убрать Count()

Form1.pageWithMessages
   .Controls
   .OfType<UserControl4>()
   .Select(x => x.Dock == DockStyle.Top);

будет набор элементов типа DockStyle со значением DockStyle.Top, а количество их будет совпадать с количеством всех контролов типа UserControl4.

Чтобы отфильтровать элементы используется другой метод - Where(). Но так как вам нужно лишь количество элементов, правильный вариант перенести условие в Count() -- он также поддерживает условия(предикаты) как аргумент.

Form1.pageWithMessages
   .Controls
   .OfType<UserControl4>()
   .Count(x => x.Dock == DockStyle.Top);
READ ALSO
не срабатывает Picturebox_DragEnter

не срабатывает Picturebox_DragEnter

вроде все правильно написал, но Drag enter не работаетallowdrop где находится я не нашел что можно сделать?

222
Сайт вордпресс в подпапке /rus/

Сайт вордпресс в подпапке /rus/

Существует сайт на вордпресс sitenameru , мне требуется создать отдельную версию, только для одной страны, которую будет перенаправлять на sitename

78
Ссылка не работает без &quot;/&quot; в конце

Ссылка не работает без "/" в конце

Значит такая проблема: при вызове https://url/check получаю ошибку 301 а при вызове https://url/check/ все отлично работает, но мне нужно чтоб работала https://url/check...

174
Сортировка по времени и вывод на экран

Сортировка по времени и вывод на экран

Проблема следующего характера: есть таблица, в ней три колонки id, name, time (в формате time()), station_id

103