C# LINQ提供了许多内置的查询操作符,可用于各种查询操作。以下是一些最常用的操作符:

  1. Where: 用于基于特定条件过滤集合中的元素。

    var numbers = new[] {1, 2, 3, 4, 5};
    var evenNumbers = numbers.Where(n => n % 2 == 0);
    
  2. Select: 用于转换集合中的每个元素。

    var numbers = new[] {1, 2, 3, 4, 5};
    var squares = numbers.Select(n => n * n);
    
  3. OrderBy/OrderByDescending: 用于根据特定键对集合中的元素进行升序/降序排序。

    var words = new[] {"apple", "banana", "cherry"};
    var sortedWords = words.OrderBy(w => w.Length);
    
  4. ThenBy/ThenByDescending: 用于在前一个排序操作之后执行额外的排序。

    var people = new[] {
        new {Name = "Alice", Age = 30},
        new {Name = "Bob", Age = 30},
        new {Name = "Charlie", Age = 40}
    };
    var sortedPeople = people.OrderBy(p => p.Age).ThenBy(p => p.Name);
    
  5. GroupBy: 用于根据特定键对集合中的元素进行分组。

    var numbers = new[] {1, 2, 3, 4, 5, 6};
    var numberGroups = numbers.GroupBy(n => n % 2 == 0 ? "even" : "odd");
    
  6. Join: 用于将两个集合根据匹配的键联接在一起。

    var people = new[] {new {ID = 1, Name = "Alice"}, new {ID = 2, Name = "Bob"}};
    var orders = new[] {new {ID = 1, Product = "apple"}, new {ID = 2, Product = "banana"}};
    var peopleAndOrders = people.Join(orders, p => p.ID, o => o.ID, (p, o) => new {p.Name, o.Product});
    
  7. Take: 用于选择集合中的前N个元素。

    var numbers = new[] {1, 2, 3, 4, 5};
    var firstThreeNumbers = numbers.Take(3);
    
  8. Skip: 用于跳过集合中的前N个元素。

    var numbers = new[] {1, 2, 3, 4, 5};
    var numbersExceptFirstThree = numbers.Skip(3);
    
  9. Count: 用于计算集合中的元素数量。

    var numbers = new[] {1, 2, 3, 4, 5};
    var count = numbers.Count();
    
  10. Any: 用于检查集合中是否有任何元素满足特定条件。

    var numbers = new[]{1, 2, 3, 4, 5};
    var hasEvenNumber = numbers.Any(n => n % 2 == 0);
    
  11. All: 用于检查集合中的所有元素是否都满足特定条件。

    var numbers = new[] {2, 4, 6, 8, 10};
    var allEven = numbers.All(n => n % 2 == 0);
    
  12. First/FirstOrDefault: 用于获取集合中的第一个元素或满足特定条件的第一个元素。如果集合为空或没有元素满足条件,First方法将抛出异常,而FirstOrDefault方法将返回默认值。

    var numbers = new[] {1, 2, 3, 4, 5};
    var first = numbers.First();
    var firstEvenNumber = numbers.FirstOrDefault(n => n % 2 == 0);
    
  13. Single/SingleOrDefault: 用于获取集合中的唯一元素或满足特定条件的唯一元素。如果集合为空、包含多个元素或多个元素满足条件,Single方法将抛出异常,而SingleOrDefault方法将返回默认值。

    var numbers = new[] {1};
    var single = numbers.Single();
    var singleEvenNumber = numbers.SingleOrDefault(n => n % 2 == 0);
    
  14. Sum/Max/Min/Average: 用于计算集合中元素的和、最大值、最小值或平均值。

    var numbers = new[] {1, 2, 3, 4, 5};
    var sum = numbers.Sum();
    var max = numbers.Max();
    var min = numbers.Min();
    var average = numbers.Average();
    
  15. Sum: 用于计算集合中的元素总和。

    var numbers = new[] {1, 2, 3, 4, 5};
    var sum = numbers.Sum();
    
  16. Average: 用于计算集合中的元素平均值。

    var numbers = new[] {1, 2, 3, 4, 5};
    var average = numbers.Average();
    
  17. Max/Min: 用于找出集合中的最大/最小元素。

    var numbers = new[] {1, 2, 3, 4, 5};
    var max = numbers.Max();
    var min = numbers.Min();