有没有办法使用 linq 获取所有控件。
我想做的是类似的事情(按选项卡索引对控件进行排序):
foreach (Control control in this.Controls.OrderBy(c => c.TabIndex)
{
...
}
当我得到一个列表时我使用这种查询<...>
我使用 c# 和 .Net 3.5
最佳答案
ControlCollection
仅实现 IEnumerable
,不是IEnumerable<T>
。不过,这很容易修复 - 添加对 Cast()
的调用:
foreach (Control control in Controls.Cast<Control>()
.OrderBy(c => c.TabIndex))
{
}
或者您可以使用查询表达式,它将调用 Cast()
必要时:
var controls = from Control c in Controls
orderby c.TabIndex
select c;
foreach (Control control in controls)
{
}
关于c# - Linq 获取所有控件(有序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627730/