使用枚举扩展方法来缩短代码

时间:2017-11-19 10:47:06

标签: c#

我想勾选给定数组中的一些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;
       }
    }

1 个答案:

答案 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;
    }
}