有没有办法使用linq获取所有控件.
我想做的是这样的事情(按标签索引命令控制):
foreach (Control control in this.Controls.OrderBy(c => c.TabIndex) { ... }
当我得到List <...>时,我使用那种查询
我使用c#和.Net 3.5
ControlCollection
只实现IEnumerable
,而不是IEnumerable
.这很容易修复 - 添加一个电话Cast()
:
foreach (Control control in Controls.Cast() .OrderBy(c => c.TabIndex)) { }
或者您可以使用查询表达式,它将Cast()
在必要时调用:
var controls = from Control c in Controls orderby c.TabIndex select c; foreach (Control control in controls) { }