如何在C#LINQ中使用“不在”查询?

除运算符外,还允许您查询支持IEnumerable <T <接口的数据。由于所有LINQ查询表达式和大多数LINQ查询都返回IEnumerable <T <,因此这些运算符旨在允许您对LINQ查询的结果执行set操作。

Except运算符显示一个列表中的所有项目减去第二个列表中的项目

例子1

class Program{
   static void Main(string[] args){
      var listA = Enumerable.Range(1, 6);
      var listB = new List<int> { 3, 4 };
      var listC = listA.Except(listB);
      foreach (var item in listC){
         Console.WriteLine(item);
      }
      Console.ReadLine();
   }
}

在上面的示例中,我们有2个列表,并且仅从列表A中获取列表b中不存在的结果

输出结果

1
2
5
6

例子2

使用类似Sql的语法

static void Main(string[] args){
   var listA = Enumerable.Range(1, 6);
   var listB = new List<int> { 3, 4 };
   var listC = from c in listA
   where !listB.Any(o => o == c)
   select c;
   foreach (var item in listC){
      Console.WriteLine(item);
   }
   Console.ReadLine();
}

输出结果

1
2
5
6