Fio*_*ite 28 c# linq resharper
我需要检查C#中的项目列表中是否存在项目,所以我有这一行:
if (!myList.Any(c => c.id == myID)))
Run Code Online (Sandbox Code Playgroud)
Resharper建议我将其更改为:
if (myList.All(c => c.id != myID)))
Run Code Online (Sandbox Code Playgroud)
我可以看出它们是等价的,但为什么它表明这种变化呢?由于某种原因,第一个实现是否较慢?
Maa*_*ten 28
表达的可读性对我个人意见.
我会读这个
if (!myList.Any(c => c.id == myID)))
Run Code Online (Sandbox Code Playgroud)
因为'我的物品不在集合中'.这个
if (myList.All(c => c.id != myID)))
Run Code Online (Sandbox Code Playgroud)
读为"集合中的所有项目都与我的项目不同".
如果我想通过我的linq查询询问"问题"是"我的项目不在列表中",那么第一个查询更适合我想问的问题.第!
一个查询的前面不是问题.
Dav*_*rno 18
!
在第一个例子中,很容易错过表达式的开头.因此,您的表达难以理解.另外,第一个例子读作"not any equal",而第二个例子是"all not equal to".将易于阅读的代码表达为更易于阅读的英语并非巧合.
更容易阅读代码可能会减少错误,因为在更改之前更容易理解代码.这是因为第二个例子更清楚ReSharper建议更改你的代码.
归档时间: |
|
查看次数: |
3844 次 |
最近记录: |