考虑一个场景,您希望在<asp:CheckBoxList>中检索所有选中的复选框的ListIEnumerable的值.

以下是当前的实施:

IEnumerable<int> allChecked = (from item in chkBoxList.Items.Cast<ListItem>() 
                               where item.Selected 
                               select int.Parse(item.Value));

Question:您将如何使用lambda表达式或lambda语法改进这个LINQ查询?

推荐答案

are使用了lambda表达式-它们只是被您使用C#的查询操作符所隐藏.

请考虑以下内容:

IEnumerable<int> allChecked = (from item in chkBoxList.Items.Cast<ListItem>() 
                               where item.Selected 
                               select int.Parse(item.Value));

编译为:

IEnumerable<int> allChecked = chkBoxList.Items.Cast<ListItem>()
                              .Where(i => i.Selected)
                              .Select(i => int.Parse(i.Value));

正如您所见,您已经在使用两个lambda表达式(它们是WhereSelect方法的参数),您甚至都不知道!这个问题很好,我根本不会改变它.

Asp.net相关问答推荐

单个方法(即扩展方法)之间的调用不明确

如何将标头中的用户名/密码传递给 SOAP WCF 服务

SignalR 不在服务器上使用 Session

如何防止 Azure 网站进入Hibernate 状态?

如何将配置转换应用于外部配置文件

如何从网页 (asp.net) 启动 EXE

HttpContext.Cache 过期

每月的每一天

ASP.NET URL 重写

AddDefaultTokenProviders:它是什么以及如何使用那些默认提供者?

如何针对异常需求自定义 ASP.NET Web API AuthorizeAttribute

单独装配和路由中的控制器

.NET AJAX 调用 ASMX 或 ASPX 或 ASHX?

ASP.NET 元:资源键

c# list 如何在两个值之间插入一个新值

如何使div按钮提交其所在的表单?

ASP.NET:在 Response.Redirect(...) 之后代码会发生什么?

从物理路径获取相对虚拟路径

将对象传递给 HTML 属性

DropDownList 的 SelectedValue 与 SelectedItem.Value