Как только вы откажетесь от того факта, что выбираете только один элемент с соответствующим идентификатором, у вас, вероятно, возникнет другая проблема.Я полагаю, что если вы подключите отладчик и поймаете исключения, вы обнаружите, что одно из них будет брошено:)
Вы изменяете коллекцию ctrl.Children, когда выполняете ее, что нарушает весь шаблон перечисления.(Удалите один элемент -> попробуйте перейти к следующему -> «о, штаны, коллекция изменилась»)
Запросы Linq генерируют то, что вы можете считать декорированным перечислителем, указывая на исходную коллекцию.Если заставить s быть отдельной коллекцией, вызовите ToList или ToArray, то это исправит.