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