我有以下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()'。由于“选择”这个短语的内涵,很容易错过这样的事实,即它不能达到预期的效果!完整的解释对观众来说是一件容易的事。我为简洁版提供建议。 –