[英]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.