LINQ 的 NOT IN 子句?
我正在创建一个 LINQ 查询,并且希望有一个 SQL 样式的 NOT IN 子句来确保我的结果不包含逗号分隔列表中的值之一。
我找不到 LINQ 的 NOT IN 子句。请提出一个解决方案。
I am creating a LINQ query and I want to have a SQL-style NOT IN clause to make sure that my result does not have one of the values from a comma separated list.
I could not find a NOT IN clause for LINQ. Please suggest a solution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要对要排除的对象集合执行 !contains。
You need to do a !contains on the collection of objects that you want to exclude.
您将需要 .Except() 集合运算符。
http://blogs.msdn .com/b/charlie/archive/2008/07/12/the-linq-set-operators.aspx
http://www.hookedonlinq.com/ExceptOperator.ashx
注意:您必须实施iEqualityComparor 用于对复杂类型使用 except 方法。
You'll want the .Except() set operator.
http://blogs.msdn.com/b/charlie/archive/2008/07/12/the-linq-set-operators.aspx
http://www.hookedonlinq.com/ExceptOperator.ashx
Note: You'll have to implement an iEqualityComparor to use the Except method with complex types.
像这样的东西...
Something like this...