c# - 为什么 Resharper 建议我将 "not any equal"简化为 "all not equal"?

标签 c# linq resharper

<分区>

我需要检查一个项目是否不存在于 C# 的项目列表中,所以我有这一行:

if (!myList.Any(c => c.id == myID))) 

Resharper 建议我将其更改为:

if (myList.All(c => c.id != myID))) 

我可以看到它们是等价的,但为什么它建议更改?第一次实现是否由于某种原因变慢了?

最佳答案

表达式的可读性对我来说是个人意见。

我会读这个

if (!myList.Any(c => c.id == myID))) 

因为“我的元素不在收藏中”。这哪里

if (myList.All(c => c.id != myID))) 

读作“集合中的所有项目都与我的项目不同吗”。

如果我想通过我的 linq 查询问的“问题”是“我的项目不在列表中吗”,那么第一个查询更适合我想问的问题。第一个查询前面的!没有问题。

关于c# - 为什么 Resharper 建议我将 "not any equal"简化为 "all not equal"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705046/

相关文章:

循环内的 C# SqlConnection

c# - 按顺序检查缺少的号码

visual-studio - 不同行中的 Resharper 属性

javascript - 开始安装 Karma 和 Jasmine - jasmine.Suite() 需要错误

c# - 您如何发现 TCPListener 服务的 IP 地址?

c# - 找不到引用 'RelativeSource FindAncestor' 的绑定(bind)源

c# - 传值+上传文件

c# - 列出未链接到给定父级的子记录

c# - Entity Framework : Mapping existing one-to-many relationship to Model

c# - 我能以某种方式告诉 Resharper ViewModel 的类型吗?