Linq的所有用法(简单化)
阅读原文时间:2023年08月09日阅读:1

Linq 是一种强大的查询语言,可以过滤、排序和组合各种数据源。下面我们将讨论 Linq 的各种用法。

  1. Linq 的基本语法:

Linq 可以应用于任何对象集合,以下是一个示例:

var numbers = new int[] { 1, 2, 3, 4, 5 };
var result = from n in numbers where n % 2 == 0 select n;

上述示例将从数字数组中选择所有偶数。在这个示例中,我们定义了一个数据源“numbers”,在这个数据源中我们使用 Linq 查询获取偶数。

  1. Linq 的 Where 语句:

使用 Where 筛选数据也是 Linq 的常用用法:

var numbers = new int[] { 1, 2, 3, 4, 5 };
var result = numbers.Where(n => n % 2 == 0);

Where 语句会筛选出数组中所有偶数。

  1. Linq 的 OrderBy 语句:

使用 OrderBy 对数据进行排序也是 Linq 的重要用法之一:

var numbers = new int[] { 5, 2, 1, 3, 4 };
var result = numbers.OrderBy(n => n);

OrderBy 语句会将数字数组按顺序排列,此处为从小到大。

  1. Linq 的 GroupBy 语句:

使用 GroupBy 可以将数据按特定属性分组,示例如下:

var bikes = new[] {
  new Bike { Brand = "Trek", Model = "Emonda" },
  new Bike { Brand = "Specialized", Model = "Roubaix" },
  new Bike { Brand = "Specialized", Model = "Tarmac" },
  new Bike { Brand = "Trek", Model = "Domane" }
};
var result = bikes.GroupBy(b => b.Brand);

在上述示例中,我们将自行车数据按品牌分组。

  1. Linq 的 Join 语句:

Join 语句可以将两个数据源按关系关联起来,示例如下:

var departments = new[] {
  new Department { Id = 1, Name = "Labs" },
  new Department { Id = 2, Name = "Marketing" },
  new Department { Id = 3, Name = "Engineering" }
};
var employees = new[] {
  new Employee { Id = 1, Name = "Jane", DepartmentId = 1 },
  new Employee { Id = 2, Name = "John", DepartmentId = 3 },
  new Employee { Id = 3, Name = "Sarah", DepartmentId = 2 }
};
var result = departments.Join(employees, d => d.Id, e => e.DepartmentId, (d, e) => new { Department = d.Name, Employee = e.Name });

上述示例将部门和员工数据源按部门 ID 关联起来。

除了上述示例外,Linq 还有很多其他用法,如 Distinct、Count、First、Last 等,它们都是 Linq 强大功能的体现。希望这篇文章可以为您了解 Linq 提供帮助。