繁体   English   中英

逆向工程LINQ声明

[英]Reverse Engineering a LINQ Statement

我正在尝试对LINQ语句进行逆向工程,任何帮助都将不胜感激。

bool isAllUnchecked = !lvTech.Items.Cast<ListViewItem>().Any(lvItem => lvItem.Checked);

我到目前为止的进展;

bool isAllUnchecked = true;
foreach(ListviewItem item in lvTech.Items)
{
    if(item.checked)
    {
      isAllUnchecked = false;
    }
}

我正在使用Resharper,它的'转换为LINQ到目前为止还没有出现。 我错过了什么?

我认为它应该是:

bool isAllUnchecked = false; // Variable name doesn't fit what you're doing
                             // Don't forget to change.
foreach(ListViewItem item in lvTech.Items)
{
    if(item.checked)
    {
      isAllUnchecked = true;
      break;
    }
}

Any()检查是否有任何项满足条件,如果是,则返回true

你应该重命名你的变量isAnyChecked否则你应该否定查询的结果。

这将是正确的循环(至少它是变量名称所暗示的):

bool isAllUnchecked = true;
foreach(ListviewItem item in lvTech.Items)
{
    if(item.checked)
    {
      isAllUnchecked = false;
      break;
    }
}

这与LINQ相同:

bool isAllUnchecked = lvTech.Items.Cast<ListViewItem>()
                                  .All(lvItem => !lvItem.Checked);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM