我想勾选给定数组中的一些listview项。以下代码如何使用枚举扩展方法进行缩短。
foreach (Team SelectedTeam in value.Teams)
{
foreach (ListViewItem LVItem in TeamLstVw.Items)
{
Team Team = (Team)LVItem.Tag;
if (SelectedTeam.Equals(Team))
LVItem.Selected = true;
}
}
答案 0 :(得分:0)
你可以通过在内部foreach循环中使用Linq方法来消除外部foreach循环。在这种情况下,您只需检查LVItem.Tag
value.Teams
foreach (ListViewItem LVItem in TeamLstVw.Items)
{
var Team = (Team)LVItem.Tag;
//I'd personally compare an identifier here. Like an Id property
//.Any(x => x.Id == Team.Id)
//Or use .Contains(): value.Teams.Contains(Team)
if(value.Teams.Any(x => x == Team)) {
LVItem.Selected = true;
}
}