对LINQ语句进行逆向工程
本文关键字:逆向工程 语句 LINQ | 更新日期: 2023-09-27 18:00:44
我正在尝试对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);