2
是否可以選擇所有使用linq繼承特定抽象類的控件。用linq查詢ASP.NET表單對象
是否可以選擇所有使用linq繼承特定抽象類的控件。用linq查詢ASP.NET表單對象
利用Enumerable.OfType<T>
擴展方法:
...Form.Controls.OfType<MyControlBase>()...
要執行此遞歸看到other answer:創建行走控制樹創建一個列表,你再申請LINQ運營商的迭代器。
假設你有遞歸得到所有的控制的方法,具體如下:
public static IEnumerable<Control> GetControls(Control form) {
foreach (Control childControl in form.Controls) { // Recurse child controls.
foreach (Control grandChild in GetControls(childControl)) {
yield return grandChild;
}
yield return childControl;
}
}
然後,你可以這樣做:
var controls = GetControls(form).OfType<SomeControlBase>();
我想我在尋找嵌套在另一個控件。當我嘗試這個時,它什麼都不返回。 – Slim 2009-05-06 03:36:42