如何在 C# 中将 lambda 表达式与 asp.net DataList 一起使用

我在 aspx 文件上创建了一个 DataList,其中包含基于从数据库中提取的数据重复的复选框控件。


我想获取 DataList 项目并对其进行处理,我已经使用了foreach循环,但我想使用 lambda 选择和过滤项目。


我无法将其转换DataList.items为列表或数组。有DataList.items.CopyTo,但它复制到数组对象并且无法转换为DataListItem []数组。


这就是已经完成的工作:


int count = 0;


foreach (DataListItem item in weaknesses.Items)

{

    CheckBox weakness = (CheckBox)item.FindControl("cbWeakness");

    if (weakness.Checked)

    {

        count++;

    }

}

这就是我想做的:


count = weaknesses.Items.Where(i => ((CheckBox)i.FindControl("cbWeakness")).checked).Count();


叮当猫咪
浏览 56回答 1
1回答

MYYA

你可以用这个 lambda 来做到这一点。int&nbsp;count&nbsp;=&nbsp;DataList1.Items.Cast<DataListItem>().Where(x&nbsp;=>&nbsp;((CheckBox)x.FindControl("CheckBox1")).Checked).Count();数据列表<asp:DataList&nbsp;ID="DataList1"&nbsp;runat="server"> &nbsp;&nbsp;&nbsp;&nbsp;<ItemTemplate> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:CheckBox&nbsp;ID="CheckBox1"&nbsp;runat="server"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;</ItemTemplate> </asp:DataList>
打开App,查看更多内容
随时随地看视频慕课网APP