簡體   English   中英

lambda表達式:Where(TSource)函數中AND條件的最佳實踐

[英]lambda Expression: Best practice for AND condition inside Where(TSource) Function

是否有任何好的做法在lambda表達式中編寫AND,而在Where()函數中編寫以下IF

lst.Where(obj=> {
  if (obj.Prop1 == true && obj.Prop2 == true)
    return true;
  return false;
          });

任何理由不寫:

lst.Where(obj => obj.Prop1 && obj.Prop2)

一般來說:

  • 我避免使用true和false進行直接比較,而是將if (foo)替換為if (foo == true)
  • 當您的代碼結構為:

     if (condition) { return true; } else { return false; } 

    那么您可以將其替換為:

     return condition; 

    在lambda表達式中和在其他所有表達式中一樣,這都是正確的-除了像您這樣的lambda表達式外,這意味着您可以從語句lambda (圍繞主體的大括號)移動到表達式lambda (不包含大括號)。

使用條件運算符,第二點也超越了對與錯。 我通常將其轉換為:

if (condition)
{
    return x;
}
else
{
    return y;
}

return condition ? x : y;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM