LINQ 的 NOT IN 子句?

发布于 2024-10-30 06:45:16 字数 111 浏览 1 评论 0原文

我正在创建一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终陌 2024-11-06 06:45:16

您需要对要排除的对象集合执行 !contains。

var excluded = new[] { 3, 7, 19, 41 };
var v = from i in Enumerable.Range(0, 100)
        where !excluded.Contains(i)
        select i;

You need to do a !contains on the collection of objects that you want to exclude.

var excluded = new[] { 3, 7, 19, 41 };
var v = from i in Enumerable.Range(0, 100)
        where !excluded.Contains(i)
        select i;
深空失忆 2024-11-06 06:45:16

您将需要 .Except() 集合运算符。

var results = list1.Except(list2);

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.

var results = list1.Except(list2);

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.

美羊羊 2024-11-06 06:45:16

像这样的东西...

string items = "1,2,3,4";
var subList = items.Split(',');
var result = list.Where(item=>!subList.Contains(item.SomeStringField));

Something like this...

string items = "1,2,3,4";
var subList = items.Split(',');
var result = list.Where(item=>!subList.Contains(item.SomeStringField));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文