asp.net – 递归控制搜索与LINQ
发布时间:2020-05-24 23:10:49 所属栏目:asp.Net 来源:互联网
导读:如果我想在ASP.NET页面上找到选中的复选框,我可以使用以下LINQ查询。 var checkBoxes = this.Controls .OfTypeCheckBox() .TakeWhileCheckBox(cb = cb.Checked); 这很好,如果复选框嵌套在当前控件集合,但我想知道如何通过
|
如果我想在ASP.NET页面上找到选中的复选框,我可以使用以下LINQ查询。 var checkBoxes = this.Controls
.OfType<CheckBox>()
.TakeWhile<CheckBox>(cb => cb.Checked);
这很好,如果复选框嵌套在当前控件集合,但我想知道如何通过深入到顶层控件的控件集合中扩展搜索。 这里问的问题: Finding controls that use a certain interface in ASP.NET 并且收到非LINQ的答案,我已经有我自己的版本的递归控制搜索类型和ID作为扩展方法,但我只是想知道这是多么容易这是做LINQ? 解决方法从递归中获取类型/ ID检查,所以只需要“给我所有的控件,递归”方法,例如。public static IEnumerable<Control> GetAllControls(this Control parent)
{
foreach (Control control in parent.Controls)
{
yield return control;
foreach(Control descendant in control.GetAllControls())
{
yield return descendant;
}
}
}
这是有点低效率(在创建大量的迭代器方面),但我怀疑你会有一个非常深的树。 然后,您可以将原始查询写为: var checkBoxes = this.GetAllControls()
.OfType<CheckBox>()
.TakeWhile<CheckBox>(cb => cb.Checked);
(编辑:将AllControls更改为GetAllControls,并将其正确地用作方法。) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 谈基于.net平台开发中的模式窗体
- 在asp.net中使用绑定表达式时,如何连接文本?
- .net – linq排序列表(MyObjects)
- asp.net-mvc – ELMAH – 使用自定义错误页面收集用户反馈
- asp.net-mvc – ASP.NET MVC Javascript ActionResult
- IHttpAsyncHandler和ASP.NET“请求执行”计数器的问题
- asp.net-mvc – 使用Windows身份验证和OWIN的ASP.NET MVC5
- asp.net-mvc – 在OnActionExecuting事件中更改模型
- asp.net – ApplicationInstance.CompleteRequest不会停止执
- asp.net – 可以在web.config中添加响应http头吗?
推荐文章
站长推荐
- asp.net – ELMAH日志的独立查看器应用程序
- asp.net – 如何从Web应用程序进行高级打印?
- asp.net-membership – MiniProfiler和SqlMember
- asp.net-mvc – 是否由Razor支持lambda表达式?
- asp.net-mvc – MVC导航到不同的控制器视图
- asp.net – 将MemoryStream文件存储到Azure Blob
- 将数据从ASP.net返回到ExtJS网格
- asp.net-mvc – 在ASP.NET MVC中创建报表的最佳方
- 只有内容控件才能直接在包含ASP.NET内容控件的内
- asp.net-mvc – ASP.NET MVC中的动态(运行时生成
热点阅读
