考虑以下代码片段
列出 orderList ; // 这个列表是预先填充的
foreach (System.Web.UI.WebControls.ListItem item in OrdersChoiceList.Items) // OrdersChoiceList is of type System.Web.UI.WebControls.CheckBoxList
{
foreach (Order o in orderList)
{
if (item.id == o.id)
{
item.Selected = scopeComputer.SelectedBox;
break;
}
}
}
列表中有数千个项目,因此这些循环非常耗时。我们如何优化它?
此外,我们如何使用 LINQ 做同样的事情。我尝试使用连接操作,但无法根据“SelectedBox”设置“Selected”变量的值。现在我将 select 子句中的值硬编码为“true”,我们如何在 select 子句中传递和使用 SelectedBox 值
var v = (from c in ComputersChoiceList.Items.Cast<ListItem>()
join s in scopeComputers on c.Text equals s.CName
select c).Select(x=>x.Selected = true);