Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 是否从给定控件中查找所有子控件而不显式递归?_Asp.net - Fatal编程技术网

Asp.net 是否从给定控件中查找所有子控件而不显式递归?

Asp.net 是否从给定控件中查找所有子控件而不显式递归?,asp.net,Asp.net,是否有一些静态方法可以帮助?控件。Controls proepty将返回给定控件的所有子控件,但不会返回整个子控件树。 但编写一个返回所有子控件的方法并不难。如果您使用的是.NET 3.5,则可以使用Linq非常轻松地执行此操作: var allChildControls = control.Controls.OfType<Control>().SelectMany(c => c.Controls.OfType<Control>()); 我知道你说没有显式递归,但

是否有一些静态方法可以帮助?

控件。Controls proepty将返回给定控件的所有子控件,但不会返回整个子控件树。 但编写一个返回所有子控件的方法并不难。如果您使用的是.NET 3.5,则可以使用Linq非常轻松地执行此操作:

var allChildControls = control.Controls.OfType<Control>().SelectMany(c => c.Controls.OfType<Control>());

我知道你说没有显式递归,但是,我认为这个答案很简洁。除了使用yield关键字,没有什么特别的


作为旁注。我需要使用OfType筛选控件集合。我认为这是没有必要的,因为集合只返回控制对象。有人知道为什么需要这个吗?