簡體   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