C# LINQ提供了许多内置的查询操作符,可用于各种查询操作。以下是一些最常用的操作符:
-
Where: 用于基于特定条件过滤集合中的元素。
var numbers = new[] {1, 2, 3, 4, 5}; var evenNumbers = numbers.Where(n => n % 2 == 0);
-
Select: 用于转换集合中的每个元素。
var numbers = new[] {1, 2, 3, 4, 5}; var squares = numbers.Select(n => n * n);
-
OrderBy/OrderByDescending: 用于根据特定键对集合中的元素进行升序/降序排序。
var words = new[] {"apple", "banana", "cherry"}; var sortedWords = words.OrderBy(w => w.Length);
-
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);
-
GroupBy: 用于根据特定键对集合中的元素进行分组。
var numbers = new[] {1, 2, 3, 4, 5, 6}; var numberGroups = numbers.GroupBy(n => n % 2 == 0 ? "even" : "odd");
-
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});
-
Take: 用于选择集合中的前N个元素。
var numbers = new[] {1, 2, 3, 4, 5}; var firstThreeNumbers = numbers.Take(3);
-
Skip: 用于跳过集合中的前N个元素。
var numbers = new[] {1, 2, 3, 4, 5}; var numbersExceptFirstThree = numbers.Skip(3);
-
Count: 用于计算集合中的元素数量。
var numbers = new[] {1, 2, 3, 4, 5}; var count = numbers.Count();
-
Any: 用于检查集合中是否有任何元素满足特定条件。
var numbers = new[]{1, 2, 3, 4, 5}; var hasEvenNumber = numbers.Any(n => n % 2 == 0);
-
All: 用于检查集合中的所有元素是否都满足特定条件。
var numbers = new[] {2, 4, 6, 8, 10}; var allEven = numbers.All(n => n % 2 == 0);
-
First/FirstOrDefault: 用于获取集合中的第一个元素或满足特定条件的第一个元素。如果集合为空或没有元素满足条件,First方法将抛出异常,而FirstOrDefault方法将返回默认值。
var numbers = new[] {1, 2, 3, 4, 5}; var first = numbers.First(); var firstEvenNumber = numbers.FirstOrDefault(n => n % 2 == 0);
-
Single/SingleOrDefault: 用于获取集合中的唯一元素或满足特定条件的唯一元素。如果集合为空、包含多个元素或多个元素满足条件,Single方法将抛出异常,而SingleOrDefault方法将返回默认值。
var numbers = new[] {1}; var single = numbers.Single(); var singleEvenNumber = numbers.SingleOrDefault(n => n % 2 == 0);
-
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();
-
Sum: 用于计算集合中的元素总和。
var numbers = new[] {1, 2, 3, 4, 5}; var sum = numbers.Sum();
-
Average: 用于计算集合中的元素平均值。
var numbers = new[] {1, 2, 3, 4, 5}; var average = numbers.Average();
-
Max/Min: 用于找出集合中的最大/最小元素。
var numbers = new[] {1, 2, 3, 4, 5}; var max = numbers.Max(); var min = numbers.Min();
全部评论