我有以下LINQ聲明:那2個linq相當於?
_champs.Where(a => a.NoPage == noPage + 1).Any()
和
_champs.Any(a => a.NoPage == noPage + 1)
在if條件。
第一個看起來更容易閱讀,似乎比第二個更邏輯,但都工作得很好。
是否有任何理由使用比#2更多#1或反之亦然?
編輯:我會堅持第二個,因爲它看起來比第一個好一點。這很容易閱讀也聽起來更自然...實際上我發現第二個更經常在我的代碼中(經過快速查找)
使用'2'更方便,簡潔,當然我們應該使用它。順便說一句,我發現第二個有點**比第一個更容易閱讀。 –
技術上'2'可能會更快一點,因爲'1'需要創建一個WhereEnumerableIterator實例。我不相信你能夠觀察到這種差異。 – decPL
我曾經偶然發現了以下錯誤:'_champs.Select(a => a.NoPage == noPage + 1).Any()'。由於「選擇」這個短語的內涵,很容易錯過這樣的事實,即它不能達到預期的效果!完整的解釋對觀衆來說是一件容易的事。我爲簡潔版提供建議。 –